Java类里面的构造器

类总共三大成员:属性、方法、构造器(也叫构造方法)

JAVA的构造器更像是python里面initnew的结合

注1:public、private、protected或者bai没有修饰符 ,都可du以对构造方法进行修饰。不同于实例方法的是zhi构造方法不能有任何非访问性质的修饰符修饰,例如static、final、synchronized、abstract等都不能修饰构造方法。

一、
构造器就两个作用:

  • 1.创建实例对象
  • 2.初始化对象的信息

注: 构造器不会有返回值

二.

//创建类的对象:new + 构造器(Person())
Person p = new Person(); // Person()就是构造器

三.

  • 1.如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器(Person()就是一个空参构造器)

  • 2.定义构造器的格式:权限修饰符 类名(形参列表){}

  • 3.虽然构造器不同于方法,但是也有重载的概念,一个类中可以定义多个构造器,彼此要构成重载

  • 4.一旦我们显式的定义了类的构造器之后,系统就不再提供默认的 空参构造器
    注:如果要显式的定义类的构造器,一般我们都会显示定义一个空参构造器

  • 5.一个类中,至少会有一个构造器。

注1:默认的 空参构造器权限 和 该类的权限是一致的
注2:构造器 和 方法还是有区别的,构造器是没有返回值的,所以也不能指定返回值类型,也没有void
注3:我们自己定义的构造器,权限一般和类的权限一致

四.

class Person{
//属性
String name;
int age;

//构造器
public Person(){
    System.out.println("Person().....");  //这些代码不影响Person类生成实例对象
}

public Person(String n){       //构造器没有返回值这一说,所以也不应该有void这种返回值类型
    name = n;  //这些代码不影响Person类生成实例对象
    
}

public Person(String n,int a){
    name = n;  //这些代码不影响Person类生成实例对象
    age = a;   //name 和 age前面省略了this
}


//方法
public void eat(){
    System.out.println("人吃饭");
}

public void study(){
    System.out.println("人可以学习");
}

}

public class PersonTest {
public static void main(String[] args) {
//创建类的对象:new + 构造器
Person p = new Person();

    p.eat();
    
    Person p1 = new Person("Tom");
    
    System.out.println(p1.name);
    
    
}

}

五.
总结:属性赋值的先后顺序

  • ① 默认初始化
  • ② 显式初始化
  • ③ 构造器中初始化
  • ④ 通过"对象.方法" 或 "对象.属性"的方式,赋值
  • 以上操作的先后顺序:① - ② - ③ - ④
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容