一 类和对象分别是什么

1.类(class)

类是Java中的一种蓝图或模板,它定义了对象的属性(字段)和行为(方法)。你可以把类看作是一个抽象的概念,它描述了某类事物的共性。

class 类名 {
    // 属性(字段)
    数据类型 属性名;
    
    // 构造方法
    类名(参数) {
        // 初始化代码
    }

    // 方法(行为)
    返回类型 方法名(参数) {
        // 方法体
    }
}
类型一 
class Dog{
    public String name;
    public int age;

    public void eat(){
        System.out.println(name+"吃狗粮");
    }
    public void bake(){
        System.out.println("汪汪叫");
    }

    public static void main(String[] args) {
        Dog dog=new Dog();
        dog.eat();
    }

}
类型二
public class Date {
    public int year;
    public int month;
    public int day;

    public void setDate(int year,int month,int day){
        this.year=year;
        this.month=month;
        this.day=day;
    }
    public void printDay(){
        System.out.println(this.year+"年"+this.month+"月"+this.day+"日");
    }

2.对象(object)

对象是类的实例化。类是抽象的,而对象则是具体的。通过类定义的结构,可以创建多个对象,每个对象都有自己独立的属性值。 

对象的创建
类名 对象名 = new 类名(参数);
类型一
public static void main(String[] args) {
        Dog dog=new Dog();//对象的创建
        Dog dog2=new Dog();
    }
类型二 
 public static void main1(String[] args) {
        Date date=new Date();

        Date date1=new Date();
    }

3.类和对象的关系

  • 是一个模板,它描述了对象的属性和行为。
  • 对象是类的实例,类中定义的字段和方法会通过对象具体体现出来。

注:

  1. 类的属性(字段):描述对象的特征。
  2. 类的方法:定义对象的行为。
  3. 构造方法:用于创建和初始化对象。
  4. 对象:类的实例,实际的实体,通过new关键字创建。

二 类的实例化

在Java SE中,类的实例化是指根据类创建具体对象的过程。这个过程通过使用new关键字来完成,并且通常会调用类的构造方法来初始化对象的属性。 

1.类的实例化步骤:

  1. 定义类:首先你需要定义一个类,其中包含属性(字段)和方法(行为)。
  2. 构造方法:使用构造方法来初始化对象。在实例化时会自动调用构造方法。
  3. 实例化对象:使用new关键字创建类的实例(即对象)。
  4. 使用对象:通过对象可以访问类的属性和方法。
示例:
public class Date {
    public int year;
    public int month;
    public int day;

    public void setDate(int year,int month,int day){
        this.year=year;
        this.month=month;
        this.day=day;
    }
    public void printDay(){
        System.out.println(this.year+"年"+this.month+"月"+this.day+"日");
    }
    public Date(){
/*        this.year=2008;
        this.month=8;
        this.day=8;*/
        this(2001,1,1);
    }
    public Date(int year,int month,int day){
        this.year=year;
        this.month=month;
        this.day=day;
    }


    public static void main(String[] args) {
        Date date=new Date();
        date.printDay();
    }
    public static void main1(String[] args) {
        Date date=new Date();
/*        date.year=2008;
        date.printDay();*/
        date.setDate(2004,8,8);
        date.printDay();
        Date date1=new Date();
        date1.setDate(2005,5,5);
        date1.printDay();
    }
}

2.什么是构造方法 

在Java SE中,构造方法(Constructor)是一种特殊的方法,用于在创建对象时对类的对象进行初始化。构造方法和类同名,并且没有返回类型(包括void),它们在对象实例化时自动调用。

2.1构造方法的特点:

  1. 方法名与类名相同:构造方法的名称必须与类名完全相同。
  2. 没有返回类型:构造方法没有返回值,也不能声明为void
  3. 自动调用:构造方法在使用new关键字实例化对象时自动调用。
  4. 可以重载:构造方法可以有多个,Java支持构造方法重载(参数列表不同)。

2.2构造方法的分类:

  • 无参构造方法:没有参数的构造方法。
 public Date(){
        this(2001,1,1);
    }
  • 有参构造方法:带有参数的构造方法,用于在创建对象时传递值。
    public Date(int year,int month,int day){
        this.year=year;
        this.month=month;
        this.day=day;
    }

2.3构造方法的重载

Java允许多个构造方法的存在,只要它们的参数列表不同。通过构造方法的重载,可以根据需要提供不同的初始化方式。

三.this的引用 

 在Java SE中,this 是一个引用,表示对当前对象的引用。它常用于类的构造方法、实例方法和代码块中,帮助区分对象的属性和方法,尤其在参数名称与成员变量名称相同的情况下。this 可以用于多种场景。

1.this的主要用途:

  1. 引用当前对象的实例变量: 当构造方法或方法的参数名称与类的成员变量名称相同,使用this可以区分成员变量和参数。this用于引用当前对象的实例变量,而非局部变量或方法参数。

  2. 调用当前类的构造方法: 在一个构造方法中,可以使用this(参数)来调用同一个类中的其他构造方法。称为构造器链,用于简化代码逻辑。

  3. 返回当前对象this还可以作为方法的返回值,通常用于链式方法调用(method chaining)。

  4. 传递当前对象作为参数this可作为参数传递给方法或构造函数,表示将当前对象传递给其他对象或方法。

普通方法中:
 public void setDate(int year,int month,int day){
        this.year=year;
        this.month=month;
        this.day=day;
    }
构造方法中:
    public Date(int year,int month,int day){
        this.year=year;
        this.month=month;
        this.day=day;
    }

注: 

  • this引用当前对象,主要用于区分成员变量和局部变量,特别是在方法或构造函数的参数与类的字段同名时。
  • this(参数)可以在构造函数内调用同类的其他构造方法,用于简化构造器链。
  • this可以用作返回值,支持链式方法调用。
  • this可以作为参数传递,表示将当前对象传递给其他方法或构造函数。

这些特性让this成为Java中灵活且常用的工具,特别是在对象构建和方法调用时。

希望能对大家有所帮助!!!! 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。