【Java】类和对象

类和对象

类:类是描述一个对象的;

对象:对象是类产生的实体


一般一个文件中只定义一个类;

类的组成:

  1. 成员变量(也叫做属性、字段):定义在方法的外部,类的内部;
  2. 成员方法:定义在类中;
public class Student {
    // 定义成员变量、字段、属性
    public String name;
    public int age;
    public String sex;

    // 定义成员方法
    public void DoHomework() {
        System.out.println(name + "写作业");
    }
    public void DoClass() {
        System.out.println(name + "去上课");
    }
}

类的实例化(实例化对象)

 类名 对象名 = new 类名(); 

  1. 类创建对象的过程就是类的实例化;
  2. 这里的对象属于引用类型,通过关键字new可以实例化多个对象
  3. 只要new就会产生新的对象,只要有新的对象在堆上就有新的空间
  4.  类名 对象名 = new 类名(); 就是实例化对象

对象名.成员变量/成员方法;

对象通过.来访问对象中的成员变量和成员方法;

public static void main(String[] args) {
        Student student = new Student(); // 类的实例化
        
        // student对象通过.来访问成员变量和成员方法
        student.name = "张三";
        student.age = 19;
        student.sex = "男";
        student.DoHomework();
        student.DoClass();
    }

 构造方法

  1. 构造方法是一个特殊的方法,方法没有返回值,方法名和类名一样
  2. 构造方法至少有一个,在没有写任何构造方法的时候,编译器(Java)会自带一个无参的数的构造函数;
  3. 但是一旦写了任何一种构造方法,编译器就不会提供任何一个构造方法;
  4. 实例化对象时,构造方法就会被调用(构造方法的调用是发生在实例化对象的时候);
  5. 构造方法在整个生命周期中只调用一次;
  6. 构造方法可以重载;
  7. 对象的产生有两步:1、为对象分配内存;2、调用适合的构造方法;
  8. 快捷创建构造方法:右键 -> generate -> constructor -> 选择什么参数的构造方法;

构造方法的作用:就是对对象中的成员进行初始化,并不负责给对象开辟空间。

【Java】类和对象_第1张图片


this引用

  1. this.成员变量;// 表示当前对象的成员变量,this就表示当前对象;
  2. this.成员方法;// 访问当前类的成员方法;
  3. this的类型:对应类类型引用,即哪个对象调用就是哪个对象的引用类型;
  4. this只能在"成员方法"中使用, 在"成员方法"中,this只能引用当前对象,不能再引用其他对象;

【Java】类和对象_第2张图片


构造方法中的this引用 —— this();

this(参数值1,参数值2,...); // 这条语句必须位于构造方法的第一句;

this(); 的用法:在无参构造函数中调用含有参数的构造函数;// this();进行赋值必须按顺序进行赋值;

// 构造方法
    public Student() {
        // this("张三");  //this()等价与下面的初始化
        // this.name = "张三";
        
        this("李四",19,"男"); // this()等价与下面的初始化
        
        this.name = "李四";
        this.age = 19;
        this.sex = "男";
    }

    public Student(String name) {
        this.name = name;
    }

    public Student(String name, int age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

你可能感兴趣的:(java,开发语言)