類和物件的初步認識(建構函式)
阿新 • • 發佈:2018-11-03
類和物件的初步認識(建構函式)
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);進行賦值。