java學習筆記7(面向對象)
一、
面向過程的思想: 遇到問題,想,我該怎麽解決這個問題,然後一步一步解決
面向對象的思想:遇到一件事,思考,我該讓誰去做,至於他怎麽做,不需要我考慮,只要最後做好
實例:我們要組裝一臺電腦
面向過程:上網上查詢各種硬件參數性價比去商城觀察問價,找到最適合的,買回來各種硬件自己組裝。
面向對象:找一個組裝電腦的專家,告訴他我需要一臺電腦,組裝之後給我
二、
面向對象的好處:
更符合人們的思考習慣
面向對象更像是一個指揮者,面向過程像一個執行者
面向對象的思維方式可以將復雜的問題簡單化
世界萬物皆是對象
三、
類和對象的關系:
類:對某一類事物的抽象描述
對象:用於表示現實中該事物的個體
類用於描述多個對象的共同特征,相當於一個模板
對象是通過類創建出來的,一個類可以對應多個對象
四 、
成員變量和局部變量的區別
作用域
成員變量:作用範圍是整個類
局部變量:作用於一個方法內,或語句內
作用上的區別
成員變量:隨著對象的創建而存在,隨著對象的消失而消失
局部變量:在調用了對應的方法時執行到了創建該變量的語句時存在,局部變量一旦出自 己的作用域那麽馬上從內存中消失
初始值
成員變量是有默認的初始值
局部變量沒有默認值 必須先初始化才能使用
五、
面向對象的三大特征
封裝
繼承
多態
封裝的表現: 方法就是一個封裝體,類也是一個封裝
封裝的特點:
提高了代碼的復用性
隱藏了實現細節,還要對外提供可以訪問的方式,便於調用者的使用
提高了安全性
六、
private關鍵字
建一個人的類:
public class Person { String name; int age; //定義一個跑的方法 publicvoid run(){ System.out.println(age+"歲的"+name+"在跑"); } }
public class Test { public static void main(String[] args) { Person p=new Person(); p.name="小明"; p.age=1000; p.run(); } }
這個結果中,1000歲的小明在跑,這個年齡肯定不符合,為了解決這個問題,我們就想,如果不能修改age變量,這個問題就可以解決,於是有了private關鍵字,
被private修飾的成員只能在自己的類中使用
可以對私有的成員,提供公共的訪問方式,方法
public class Person { // 人的姓名年齡,成員變量 String name; private int age; // 定義方法,對age賦值 public void setAge(int a) { if (a < 0 || a > 100) { age = 20; } else { age = a; } } //定義方法,獲取age public int getAge(){ return age; } // 說話功能 public void speak() { System.out.println(age + "歲的" + name + "在說話"); } }
public class PersonTest { public static void main(String[] args) { Person p = new Person(); p.setAge(80); System.out.println(p.getAge()); p.name = "張三"; p.speak(); } }
java學習筆記7(面向對象)