java 類與物件-封裝
阿新 • • 發佈:2019-01-11
一.類與物件
類:是一類事物特徵抽象的集合,表示的是一個共性的產物。類中包括屬性(靜態屬性)和方法(動態屬性)注:類中屬性和方法也可以沒有。
物件:是抽象的具體化,換句話說物件就是按照類的模板建立的一個具體例項。例如:按照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();
}
}