java中萬物皆對象,比如說動物,裡面有貓,狗,魚等等,他們都能跑,都能呼吸,總之他們有一些動物的共同特征,java中可以把他們歸為一類。這就是java中的類;而貓,狗等,就是這個類中的一個具體的對象。
貓,狗又有一些動作行為,就是方法.
當你想調用那些動作行為的時候,不能直接在類中調用,因為不同的動物的行為不一樣,你就必須new一個對象,來調用.
先來看個例子
public class Dog{ String name; int age; void bark(){ // 汪汪叫 System.out.println("汪汪,不要過來"); } void hungry(){ // 饑餓 System.out.println("主人,我餓了"); } }
對上面例子說明:
public 是類的修飾符,表明該類是公共類,可以被其他類訪問。
class 是定義類的關鍵字。
Dog 是類名稱。
name、age 是類的成員變量,也叫屬性;bark()、hungry() 是類中的函數,也叫方法。
一個類可以包含以下類型變量:
局部變量:在方法或者語句塊中定義的變量被稱為局部變量。變量聲明和初始化都是在方法中,方法結束後,變量就會自動銷毀。
成員變量:成員變量是定義在類中、方法體之外的變量。這種變量在創建對象的時候實例化(分配內存)。成員變量可以被類中的方法和特定類的語句訪問。
類變量:類變量也聲明在類中,方法體之外,但必須聲明為static類型。static 也是修飾符的一種。
注意事項:
在類實例化的過程中自動執行的方法叫做構造方法,它不需要你手動調用。構造方法可以在類實例化的過程中做一些初始化的工作。
構造方法的名稱必須與類的名稱相同,並且沒有返回值。
每個類都有構造方法。如果沒有顯式地為類定義構造方法,Java編譯器將會為該類提供一個默認的構造方法。
舉個栗子:
package com.lechebang.www; /** * Created by manlili on 2016/9/21. */ public class Dog{ String name; int age; public Dog () { //構造方法 System.out.println("我是構造方法"); } void bark(){ // 汪汪叫 System.out.println("汪汪,不要過來"); } void hungry(){ // 饑餓 System.out.println("主人,我餓了"); } }
對象是根據類創建的。在Java中,使用關鍵字new來創建一個新的對象。創建對象需要以下三步:
①聲明:聲明一個對象,包括對象名稱和對象類型。
②實例化:使用關鍵字new來創建一個對象。
③初始化:使用new創建對象時,會調用構造方法初始化對象。
舉個栗子:
public class Dog{ String name; int age; public Dog () { //構造方法 System.out.println("我是構造方法"); } void bark(){ // 汪汪叫 System.out.println("汪汪,不要過來"); } void hungry(){ // 饑餓 System.out.println("主人,我餓了"); } public static void main(String[] args) { Dog myDog = new Dog(); } }
執行結果是
// 實例化 Dog myDog = new Dog("花花", 3); // 通過點號訪問成員變量 myDog.name; // 通過點號訪問成員方法 myDog.bark();
舉個例子:
public class Dog2{ String name; int age; // 構造方法,沒有返回值 Dog2(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 arg[]){ // 創建對象時傳遞的參數要與構造方法參數列表對應 Dog2 myDog = new Dog2("花花", 3); String name = myDog.name; int age = myDog.age; System.out.println("狗狗的名字是"+name+";狗狗年齡是"+age); myDog.bark(); myDog.hungry(); } }
運行結果: