类和对象的初步认识(构造函数)

类和对象的初步认识(构造函数)

Java是一门面向对象的编程语言(OOP) ,

面向对象程序三大的特点:封装,继承,多态

1.类:

class Person {
   private int age;
   
    public int getAge() {
       return age;
   }
   public void setAge(int age) {
       this.age = age;
   }
  }

Person,是一个类,它的成员变量age是私有的,别人无法访问,但是Java提供了一系列的set,get方法去可以访问它的值;

public static void main(String[] args) {
        Person person= new Person();
        person.setAge(10);
        System.out.println(person.getAge());
    }

类先创建一个对象,然后通过对象去访问(对象创建的时候,首先要为对象分配内存
然后去调用合适的构造函数);

类和对象的关系应该是:类-----实例化------->对象

2.构造方法:

(1).构造方法格式
public 类名(…){

​ }

(2).构造方法的作用
给对象做初始化操作的,一般给成员变量赋值
(对象一被创建,就需要执行的操作)

(3).构造方法什么时候执行
new 对象的时候执行

class Person {
    private int age;
    private String name;

    public Person() {//不带参数的构造函数  构造函数可以被重载
        System.out.println("Person()");
        this.age = 20;//this:指向当前对象的内存
        this.name = "002";
    }
    public Person(String name,int age) {
        System.out.println("Person(name,age)");
        this.age = age;
        this.name = name;
    }

    public Person(String name) {
        System.out.println("Preson(name)");
        this.name = name;
       
    }
     public String toString() {
        return "Person{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }
}
 public static void main(String[] args) {
        Person person = new Person();
        System.out.println("===========");
        System.out.println(person);
        System.out.println("===========》");
        Person person1 = new Person("003",22);
        System.out.println(person1);
        System.out.println("====》=======》");
        Person person2 = new Person("004");
        System.out.println(person2);
    }
}   
运行的结果为:
Person(name,age)
Person()
===========
Person{age=20, name='002'}
===========》
Person(name,age)
Person{age=22, name='003'}
====》=======》
Preson(name)
Person{age=0, name='004'}

new了一个新的对象preson,但并未给他定义参数值;同时它就调用合适的构造函数;定义的Person只有两个成员类变量,它会优先调用带有两个参数的构造方法;public Person(String name,int age)中并未给他赋值,所以它会继续调用无参的构造函数,将其初始化值赋予。所以打印的person值为:age=20,name=002;

而对于person1来说,因为Person person1 = new Person(“003”,22); new对象的时候,同时赋予了其中成员变量的值,所以它会直接调用带两个参数的成员变量并赋值,然后结束。

而对于person2来说,因为Person person2 = new Person(“004”); new对象时候,值给了它一个name的值,所以它会调用一个参数的构造函数public Person(String name);进行赋值。

构造方法的注意事项
a:如果没有写构造方法,系统会有一个默认的空参数构造方法
b:如果写了构造方法,原来的默认空参数构造方法,就不再提供了

猜你喜欢

转载自blog.csdn.net/qq_39602004/article/details/83543330
今日推荐