3、面向物件
阿新 • • 發佈:2018-11-21
1、面向物件三大特徵
·封裝(encapsulation)
·繼承(inherit)
·多型(polymorphism)
2、成員變數和區域性變數
成員變數:寫在類體的裡畫,方法體的外面,宣告時可以不進行初始化值,可以被本類或其他類的方法進行呼叫。
區域性變數:寫在方法體的裡面,宣告時必須進行初始化,只能在宣告區域性變數的方法內進行呼叫。
public class local_value{ //基本資料型別 byte b; //預設值 0 short s; //預設值 0 int i; //預設值 0 char c; //預設值 \u000 long l; //預設值 0 float f; //預設值0.0 double d; //預設值0.0 boolean boo; //預設值 false //引用資料型別 String str; //預設值 null public static void main(String[] args){ local_value local = new local_value(); System.out.println(local.b); System.out.println(local.s); System.out.println(local.i); System.out.println(local.c); System.out.println(local.l); System.out.println(local.f); System.out.println(local.d); System.out.println(local.boo); System.out.println(local.str ); } }
3、面向物件封裝和private關鍵字
什麼是封裝?
封裝是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。
封裝的優點:
隱藏程式碼的實現細節,提高安全性。
class Private{ //姓名 private String name; //年齡 private int age; //對外 提供公共的訪問方式,編寫set和get方法 public void setAge(int _age){ if (_age>0 && _age<120){ age = _age; }else{ System.out.println("年齡不符合常理,請重新設定!"); } } public int getAge(){ return age; } public void setName(String _name){ name = _name; } public String getName(){ return name; } } class Private01{ public static void main(String[] args) { Private p = new Private(); //p.age = -10; // 年齡不符合常理,不能為負數 p.setAge(10); p.setName("好人"); System.out.println(p.getName()); System.out.println(p.getAge()); } }
4、引用傳遞、值傳遞
基本資料型別的引數傳遞和值傳遞
class transfer{ public static void m1(int i){ i = i + 1; System.out.println("m1方法中的i=" + i);//11 } public static void main(String[] args){ int i = 10; m1(i); System.out.println("main方法中的i=" + i);//10 } }
引用資料型別的引數傳遞,傳遞的引用
class transfer01 { private int age; public void setAge(int _age){ age = _age; } public int getAge(){ return age; } } class transfer02 { public static void m1(transfer01 a){ int age = a.getAge(); a.setAge(++age); System.out.println("m1方法中的age=" + a.getAge()); // 11 } public static void main(String[] args) { transfer01 a = new transfer01(); a.setAge(10); m1(a); System.out.println("main方法中的age=" + a.getAge()); // 11 } }