1. 程式人生 > >java 類與物件-封裝

java 類與物件-封裝

一.類與物件
類:是一類事物特徵抽象的集合,表示的是一個共性的產物。類中包括屬性(靜態屬性)和方法(動態屬性)注:類中屬性和方法也可以沒有。

物件:是抽象的具體化,換句話說物件就是按照類的模板建立的一個具體例項。例如:按照Car類建立一個具體行駛在馬路上的汽車,這個汽車擁有Car類中定義的屬性和方法。
類定義完成之後,不能直接使用,如果要使用,必須在主方法中(main)建立物件,由於類屬於引用資料型別,所以物件的產生格式(兩種格式)如下:
(1)格式一:宣告並例項化物件
類名稱 物件名稱 = new 類名稱 () ;
(2)格式二:先宣告物件,然後例項化物件
類名稱 物件名稱 ;
物件名稱 = new 類名稱 () ;
當一個例項化物件產生之後,可以按照如下的方式進行類的操作:
物件.屬性:表示呼叫類之中的屬性;
物件.方法():表示呼叫類之中的方法。

   public class Car {  
    int speed; // 儲存汽車的速度  
    String color; // 汽車顏色編號  
    String name; // 汽車的名字  
    String direction; // 汽車的行駛方向  

    /* 構造方法,用來初始化汽車名字和顏色 */  
    public Car(String p_name) {  
        name = p_name;  
    }  

    // 這是Car類中的一個方法,功能是啟動汽車,讓它以50的速度,向"南方"行駛  
    public void driveCar
() { speed = 50; // 將速度設定為50 direction = "南方"; // 將行駛方向設定為"南方" } // 這是Car類中的另一個方法:給汽車加速的方法,這個方法中有一個引數 public void raiseSpeed(int p_speed) { if (p_speed < 0) { // 判斷引數p_speed的值是否符合要求 System.out.println("p_speed的值小於0,raiseSpeed方法將結束"); return
; } int currentSpeed = speed + p_speed; // 計算出當前速度。 speed = currentSpeed; // 將當前速度賦值給speed屬性 } public static void main(String[] args) { Car car = new Car("奧迪A8"); car.name="黑色";//給屬性賦值 car.driveCar();// 開車 car.raiseSpeed(20);// 加速 System.out.println("現在的速度是:" + car.speed); } }

二.封裝
1.概念: 隱藏物件的屬性和細節,僅對外提供公共的方法進行訪問。

2.private
a. 當類的成員變數使用private 修飾符修飾,那麼就不可以直接訪問到該成員變數.
b. 當使用private 修飾的成員變數或者成員方法,僅能在本類中使用
c. private 對於main 方法的修飾,也是可以產生作用的.

javaBean:
是這樣一類的類:
他的所有成員變數都使用private 進行修飾,並且對外提供可訪問的設定值和獲取值的set,get方法。不同的應用場景,可能命名
不同,資料庫的應用中稱為POJO類.

class Person{
    private String name;
    private int age;

    void setName(String nameParm){
        name = nameParm;
    }

    String getName(){
        return name;
    }

    void setAge(int ageParm){
        age = ageParm;
    }

    int getAge(){
        return age;
    }

    void speak(){
        System.out.println(name+" . "+age);
    }

    public static void main(String[] args){
        Person person = new Person();
        person.setName("diffo");
        person.setAge(30);
        person.speak();
    }
}

class DemoBean{

    static void main(String[] args){
        Person person = new Person();
        person.setName("diffo");
        person.setAge(30);
        person.speak();
    }

}