Java笔记——类和对象

类和对象

  1. 类的定义
class Student{
	public String sno;  //成员属性
	public String name;
	public String sex;
	
	public void learn() {  //成员方法
		System.out.println("学习");
	}
	public void sleep() {
		System.out.println("睡觉");
	}
}
  • class为定义类的关键字;
  • Student 为类名;
  • { … } 中为类的主体。
  1. 类的实例化
    拿上述的Student例子来看:
public class Main{
public static void main(String[] args) {
		Student stu = new Student();
		stu.learn();
		stu.sleep();
		Student stu1 = new Student();
		Student stu2 = new Student();
	}
}

结果:
Java笔记——类和对象

从示例可以看出:

  • new关键字用于创建一个对象的实例
  • 用 “ . ” 来访问对象中的属性和方法
  • 同一个类可以创建多个实例
  1. 方法
    对于上述Student来说,learn是一个方法,表示Student 这个对象具有“学习”的行为;
    同样,sleep也是一个方法,代表Student对象具有“睡觉”的行为。

构造方法

在实例化对象的时候挥别自动调用到的方法,方法名字和类名相同,用于对象的初始化。

class Student{
	public String sno;  //成员属性
	public String name;
	public String sex;
	
	    Student(String sno,String name, String sex){  //构造方法
        this.sno = sno;
        this.name = name;
        this.sex = sex;
    }
}

public class Main{
    public static void main(String[] args) {
        Student stu = new Student("2021","小红","女");
        System.out.println(stu.name);
    }
}

结果:
Java笔记——类和对象

static关键字

  • 修饰属性
    java静态属性和类相关,和具体的实例无关,即同一个类的不同实例公用同一个静态属性。

代码示例:

class Test{
	public int a;
	public static int count;
}

public class Main{
	public static void main(String[] args) {
	Test t1 = new Test();
	t1.a++;
	Test.count++;
	System.out.println(t1.a);
	System.out.println(Test.count);
	}
}

结果:
Java笔记——类和对象
由上述示例可知,count被static所修饰,所有类共享,且不属于对象,访问方式为:类名.属性

  • 修饰方法
    在任何方法上应用static关键字,称为静态方法

  • 代码块
    使用{ }定义的一段代码
    可分为:

普通代码块

public class Main{
    public static void main(String[] args) {
		//普通代码块
        {
            int x = 1;
            System.out.println("x1 = " + x);
        }
        
        int x = 100;
        System.out.println("x2 = " + x);
    }
}

结果:
Java笔记——类和对象

构造块

class Student{
    public String sno;  //成员属性
    public String name;
    public String sex;

    Student(){
        System.out.println("i am a student");
    }

    //实例代码块
    {
        this.sno = "20210201";
        this.name = "张三";
        this.sex = "男";
    }
    public void show(){
        System.out.println("sno:" + sno + " name: " + name + " sex: " + sex);
    }
}

public class Main{
    public static void main(String[] args) {
        Student stu = new Student();
        stu.show();

    }
}

结果:
Java笔记——类和对象

静态块

class Student{
    public String sno;  //成员属性
    public String name;
    public String sex;

    Student(){
        System.out.println("i am a student");
    }
    
    //静态代码块
    static {
        System.out.println("i am learning");
    }
}

public class Main{
    public static void main(String[] args) {
        Student stu = new Student();
    }
}

结果:
Java笔记——类和对象

同步代码块

  • 修饰类
  1. this指针
  • this引用的类型:对应类类型引用,即那个对象调用就是那个对象的引用类型
  • this引用只能在"成员方法中使用"
  • this引用具有final属性,在一个成员方法中,不能再去引用其他的对象
  • this引用是成员方法第一个隐藏的参数,编译器会自动传递,在成员方法执行时,编译器会负责将
    调用成员方法对象的引用传递给该成员方法,this引用复杂来接收
  • 在成员函数中,所有成员变量的访问,都会被编译器修改通过this来访问

示例:通过this调用自身的构造方法

class Student{
    public String sno;  //成员属性
    public String name;
    public String sex;

    Student(String sno,String name, String sex){
        this.sno = sno;
        this.name = name;
        this.sex = sex;
    }
    public void show(){
        System.out.println(this.name+"的学号是"+this.sno);
    }
}

public class Main{
    public static void main(String[] args) {
        Student stu = new Student("2021","小红","女");
        stu.show();
    }
}

结果:
Java笔记——类和对象

上一篇:重温《数据库系统概论》【第一篇 基础篇】【第3章 关系数据库标准语言SQL】


下一篇:数据库