類必須先定義才能使用。類是創建對象的模板,創建對象也叫類的實例化。
下面通過一個簡單的例子來理解Java中類的定義:
public class Dog { String name; int age; void bark()//汪汪叫 { System.out.println("汪汪,不要過來"); } void hungry() { System.out.println("主人,我餓了"); } }
對示例的說明:
1.public 是類的修飾符,表明該類是公共類,可以被其他類訪問。
2.class 是定義類的關鍵字。
3.Dog是類的名稱。
4.name,age是類的成員變量,也叫屬性;bark(),hungry()是類中的函數,也叫方法。
一個類可以包含以下類型變量:
1.局部變量:在方法或者語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結束后,變量就會自動銷毀。
2.成員變量:成員變量是定義在類中,方法體之外的變量。這種變量在創建對象的時候實例化(分配內存)。成員變量可以被類中的方法和特定類的語句訪問。
3.類變量:類變量也聲明在類中,方法體之外,但必須聲明為static類型。static也是修飾符的一種。
構造方法
在類實例化的過程中自動執行的方法叫做構造方法,它不需要你手動調用。構造方法可以在類實例化的過程中做一些初始化的工作。
構造方法的名稱必須與類的名稱相同,並且沒有返回值。
每個類都有構造方法。如果沒有顯式地為類定義構造方法,Java編譯器將會為該類提供一個默認的構造方法。
public class Dog { String name; int age; //構造方法,沒有返回值 Dog(String name1,int age1) { name = name1; age = age1; System.out.println("感謝主人領養了我"); } //普通方法,必須有返回值 void bark() { System.out.println("汪汪,不要過來"); } void hungry() { System.out.println("主人,我餓了"); } public static void main(String[] args) { //創建對象時傳遞的參數要與構造方法參數列表對應 Dog myDog = new Dog("花花",3); } }
運行結果:

public class People { String name; String sex; int age; //無參的構造方法(可以不寫編譯器自動加上,前提是沒有任何其他構造方法) People(){} //有參的構造方法 People(String name,String sex,int age) { this.name = name; this.sex = sex; this.age = age; } //部分初始化 People(String name) { this.name = name; } People(String name,int age) { this.name = name; this.age = age; } public static void main(String[] args) { People p = new People(); System.out.println(p.name); System.out.println(p.sex); System.out.println(p.age); People p1 = new People("張三","男",30); System.out.println(p1.name+","+p1.sex+","+p1.age); People p2 = new People("老王"); System.out.println(p2.name); People p3 = new People("小老虎",3); System.out.println(p3.name+","+p2.age); } }
說明:
- 構造方法不能被顯式調用。
- 構造方法不能有返回值,因為沒有變量來接收返回值
創建對象
對象是類的一個實例,創建對象的過程也叫類的實例化。對象是以類為模板來創建的。
在Java中,使用new關鍵字來創建對象,一般有以下三個步驟:
1.聲明:聲明一個對象,包括對象名稱和對象類型
2.實例化:使用關鍵字new來創建一個對象。
3.初始化:使用new創建對象時,會調用構造方法初始化對象。
例如:
Dog myDog;//聲明一個對象
myDog = new Dog("花花",3);//實例化
或
Dog myDog = new Dog("花花",3);
訪問成員變量和方法
通過已創建的對象來訪問成員變量和成員方法,例如:
//實例化 Dog myDog = new Dog("花花",3);
//通過點號訪問成員變量 myDog.name;
//通過點號訪問成員方法 myDog.bark();
案例:
public class Dog { String name; int age; Dog(String name1,int age1) { name = name1; age = age1; System.out.println("感謝主人領養了我"); } void bark() { System.out.println("汪汪,不要過來"); } void hungry() { System.out.println("主人,我餓了"); } public static void main(String[] args) { Dog myDog = new Dog("花花",3); //訪問成員變量 String name = myDog.name; int age = myDog.age; System.out.println("我是一只小狗,我名字叫" + name + ",我" + age + "歲了"); //訪問方法 myDog.bark(); myDog.hungry(); } }
運行結果:

參考:https://blog.csdn.net/yongchaocsdn/article/details/53572983
