[Java] 类和对象(简介,封装,内存机制,构造方法)
文章目錄
- 1 面向對象思想
- 1.1面向對象的思想概述
- 舉例
- 特點
- 1.2 類和對象
- 類
- 對象
- 類和對象的關系
- 1.3 類的定義
- 1.4 對象的創(chuàng)建以及使用
- 1.5 對象的內存
- 1.6 類作為參數
- 注意
- 1.7 類作為參數
- 1.8 成員變量的局部變量的區(qū)別
- 1.9 封裝性
- 1.9.1 this的作用
- 1.9.2 構造方法
- 1.10 標準的類(Java Bean)
1 面向對象思想
1.1面向對象的思想概述
面向過程:當需要實現(xiàn)一個功能的時候,每一個具體的步驟都需要親歷親為,詳細處理每一個細節(jié)
面向對象:當需要實現(xiàn)一個功能的時候,我不關心具體的步驟,而是找一個已經具有該功能的人,引用他人的方法和類 直接使用
舉例
打lol上分:
- 面向過程:青銅V ----> 努力上分 —> 黑鐵 ---->努力上分 —>黃金
- 面向對象:青銅V ----> 找代練 -----> 鉆石!
面向過程:強調上分的艱辛
面向對象:強調代練的nb,代練就是你的對象哈哈哈哈哈哈哈哈哈哈
特點
面向對象是一種更符合我們思考習慣的思想,它可以將復雜的思想簡單化,并將我們從執(zhí)行者變成了指揮者。
三大特性:封裝、繼承、多態(tài)
1.2 類和對象
由于Java和C++的類和對象的特性十分相似,因此這里我也快速過了,到了API類就可以開始詳細學習,這里的話簡單過一遍
類
- **類:**是一組相關屬性與行為的集合。可以看成是一類事物的模板,使用事物的屬性特征和行為特征來描述該類事物
- 屬性:該事物的狀態(tài)信息
- 行為:該事物能夠做什么
對象
- 對象:一類事物的具體體現(xiàn)。對象是類的一個實例
類和對象的關系
- 類是對一類事物的描述,是抽象的
- 對象是一類事物的實例,是具體的
- 類是對象的模板,對象是類的實體
1.3 類的定義
成員變量:對應事物的屬性
成員方法:對應事物的行為
格式:
public class ClassName{//成員變量//成員方法 } package method.demo2;public class Demo2 {public static class Student{public static String qwq = "我是你爹";public static void aaa(){System.out.println(qwq);}}}注意:要是成員變量沒有賦值的話,會有一個默認值,默認值規(guī)則和數組是一樣的
1.4 對象的創(chuàng)建以及使用
-
導包:也就是指出需要使用的類,在什么位置。
例: import 包名稱 .類名稱;
-
創(chuàng)建格式: 類名稱 名字 = new 類名稱();
-
使用:不多解釋
代碼如下:
package method.demo1;import method.demo2.Demo2;public class Demo1 {public static void main(String[] args) {Demo2.Student stu = new Demo2.Student();System.out.println(stu.qwq);stu.aaa();} }手機類練習:
-
類的創(chuàng)建
- package method.demo2;public class Demo2 {//定義一個類,用來模擬手機事物//屬性:品牌、價格、顏色//行為:打電話、發(fā)短信public static class Phone{String brand;double price;String color;public void call(String who){System.out.println("打電話給:" + who);}public void sendMessage(){System.out.println("群發(fā)短信");}}}
-
類的使用
- package method.demo2;public class qwq {public static void main(String[] args) {//創(chuàng)建Phone 類Demo2.Phone one = new Demo2.Phone();//對象的實例化one.brand = "蘋果";one.price = 9999.9f;one.color = "黑色";one.call("喬布斯");one.sendMessage();} }
注意,我的類是定義在同一個包中的
1.5 對象的內存
一個對象的內存圖:(剛才的手機對象) 對象里面的方法保存的是地址值!!,指向方法區(qū)
兩個對象名引用同一個對象的內存
這個算是淺拷貝
1.6 類作為參數
例子:
package method.demo2;public class Demo02PhoneParam {public static void method(Demo2.Phone param){param.brand = "華為";System.out.println(param.brand);System.out.println(param.price);System.out.println(param.color);}public static void main(String[] args) {Demo2.Phone one = new Demo2.Phone();one .brand = "蘋果";one . price = 8388.0;one. color = "土豪金";System.out.println(one.brand);method(one);System.out.println(one.brand);} } 結果: 蘋果 華為 8388.0 土豪金 華為注意
- 作為參數傳進去之后,里面的形參的地址也是指向那個堆區(qū)中創(chuàng)建的對象的,也可以理解為**,傳進去的是地址值,**也就是說,方法中可以對對堆區(qū)里面的對象的數據進行修改,這一點和c++的指針啥的是不一樣的
1.7 類作為參數
返回值其實是地址值
1.8 成員變量的局部變量的區(qū)別
- 定義的位置不一樣{局部變量在方法的內部或者作為參數,成員變量在方法的外部}
- 作用范圍不一樣{局部變量只有方法中可以使用,除了方法就釋放了,成員變量整個類都可以使用}
- 默認值不一樣:{局部變量一定要初始化,但是成員變量一定有默認值}
//前三點是重點
-
內存的位置不一樣:局部變量在棧內存中,成員變量在堆區(qū)
-
聲明周期不一樣:局部變量就是進棧出棧而誕生消失,但是成員變量的話,隨著對象的誕生和消失而誕生的消失
1.9 封裝性
將過程**封裝在一段代碼里面, ** 調用就完事了,將里面的一些細節(jié)信息隱藏起來,對于外界不可見
private:
- 類內可以訪問,類外不可以
private的屬性可以通過方法來訪問,方法的名字的第一個單詞一定要是get或者set
private的練習
package method.demo2;public class Demo02PhoneParam {//學生類public static class Student {private String name;private int age;private boolean male;//是不是男性public void setName(String str) {this.name = str;}public String getName() {return name;}public void setAge(int num) {this.age = num;}public int getAge() {return age;}public void setMale(boolean male) {this.male = male;}public boolean isMale() {return male;}}public static void main(String[] args) {Student stu = new Student();stu.setName("鹿晗");stu.setAge(20);stu.setMale(true);System.out.println(stu.getName());System.out.println(stu.getAge());System.out.println(stu.isMale());}}1.9.1 this的作用
-
當方法的局部變量和成員變量 重名的時候,成員變量一定要加上this.以區(qū)分
-
this的歸屬: 通過誰調用的方法,誰就是this
1.9.2 構造方法
- 構造方法使用來創(chuàng)建對象的放大,當我們通過關鍵字new來創(chuàng)建對象的時候,其實就是在調用構造方法
- 語法: public 類名稱(參數類型,參數名稱){}
- 構造方法不能return
- 編譯器會自動給我們的類創(chuàng)建一個構造方法
- 有 有參構造,無參構造
就是c++里面的構造函數
1.10 標準的類(Java Bean)
滿足:
在IDEA 中有快捷鍵,按Alt + Insert可以直接創(chuàng)建Getter和Setter方法或者有創(chuàng)建構造方法等
總結
以上是生活随笔為你收集整理的[Java] 类和对象(简介,封装,内存机制,构造方法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剧本第三部分
- 下一篇: 黑客丛林之旅通关攻略(共14关)