生活随笔
收集整理的這篇文章主要介紹了
面向对象(上)之三
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 封裝性
1.1 封裝性的設(shè)計思想
- 隱藏對象內(nèi)部的復(fù)雜性,只對外公開簡單的接口。便于外界調(diào)用,從而提高系統(tǒng)的可擴展性、可維護性。
- 換言之,把該隱藏的隱藏起來,該暴露的暴露出來。
1.2 封裝性的引入
- 使用者對類內(nèi)部定義的屬性直接操作會導(dǎo)致數(shù)據(jù)的錯誤、混亂或安全性問題。
?
package day08;public class Animal {public int legs;public void eat() {System.out.println("動物吃飯"
);}public void move() {System.out.println("動物移動"
);}
} View Code package day08;public class AnimalTest {public static void main(String[] args) {Animal animal =
new Animal();animal.legs = 4
;animal.eat();animal.move();System.out.println("----------------------"
);animal =
new Animal();animal.legs = -5
;animal.eat();animal.move();}
} View Code 1.3 信息的封裝和隱藏
- java通過將數(shù)據(jù)聲明為私有的(private),再提供公共的(public)的方法實現(xiàn)對該屬性的操作,以實現(xiàn)下面的目的:
- ①隱藏一個類中不需要對外提供的實現(xiàn)細節(jié)。
- ②使用者只能通過事先定制好的方法來訪問數(shù)據(jù),可以方便的加入控制邏輯,限制對屬性的不合理操作。
- ③便于修改,增強代碼的可維護性。
?
package day08;public class Animal {private int legs;public int getLegs() {return legs;}public void setLegs(
int legs) {if (0 != legs && 2 != legs && 4 !=
legs) {System.out.println("動物的腿的數(shù)目不對"
);return;}this.legs =
legs;}public void eat() {System.out.println("動物吃飯"
);}public void move() {System.out.println("動物移動"
);}
} View Code 1.3 四種訪問權(quán)限修飾符
- java權(quán)限修飾符public、protected、缺省、private置于類的成員定義前,用來限定對象對該類成員的訪問權(quán)限。
- 對于class的權(quán)限修飾只可以用public和缺省。
- ①public類可以在任何地方被訪問。
- ②缺省類只可以被同一個包內(nèi)部的類訪問。
?
package day08;public class Person {private Integer age;public Integer getAge() {return age;}public void setAge(Integer age) {if (age >= 0 && age <= 130
) {this.age =
age;}}
} View Code ?
2 構(gòu)造器(構(gòu)造方法)
2.1 構(gòu)造器的特征
- 它具有和類相同的名稱。
- 它不聲明返回值類型。
- 不能被static、final、synchronized、abstract、native修飾,不能有return語句返回值。
2.2 構(gòu)造器的作用
2.3 構(gòu)造器的語法格式
訪問修飾符 類名(參數(shù)列表){//初始化語句;
} 2.4 構(gòu)造器的分類
- 根據(jù)參數(shù)的不同,構(gòu)造器可以分為如下的兩類:
- ①隱式無參構(gòu)造器(系統(tǒng)默認提供)。
- ②顯示定義一個或多個構(gòu)造器(無參、有參)。
2.5 構(gòu)造器的注意事項
- java語言中,每個類都至少有一個構(gòu)造器。
- 默認構(gòu)造器的修飾符和所屬類的修飾符一致。
- 一旦顯示定義了構(gòu)造器,則系統(tǒng)不再提供默認構(gòu)造器。
- 一個類可以創(chuàng)建多個重載的構(gòu)造器。
- 父類的構(gòu)造器不能被子類繼承。
2.6 構(gòu)造器的作用
2.7 應(yīng)用的示例
package day08;public class Person {private String name;private Integer age;/*** 無參構(gòu)造器*/public Person() {}/*** 有參構(gòu)造器*/public Person(String name) {this.name =
name;}/*** 有參構(gòu)造器*/public Person(Integer age) {this.age =
age;}/*** 有參構(gòu)造器*/public Person(String name, Integer age) {this.name =
name;this.age =
age;}public String getName() {return name;}public void setName(String name) {this.name =
name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age =
age;}
} View Code ?
3 JavaBean
3.1 JavaBean的概念
- JavaBean是一種java語言寫成的可重用的組件。
?
- 所謂的JavaBean,是指符合如下標(biāo)準(zhǔn)的java類:
- ①類的公共的。
- ②有一個無參數(shù)的公共的構(gòu)造方法。
- ③有屬性,并且有set和get方法。
?
- 用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用Java代碼創(chuàng)造的對象進行打包,并且其他的開發(fā)者可以通過內(nèi)部的JSP頁面、Servlet、其他JavaBean、applet程序或者應(yīng)用來使用這些對象。用戶可以認為JavaBean提供了一種隨時隨地可以復(fù)制和粘貼的功能,而不用關(guān)系任何改變。
3.3 JavaBean的應(yīng)用示例
package day08;public class Person {private String name;private Integer age;public String getName() {return name;}public void setName(String name) {this.name =
name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age =
age;}
} View Code ?
4 this關(guān)鍵字
4.1 this關(guān)鍵字的概念
- 在java中,this關(guān)鍵字比較難理解,它的作用和其語義很接近。
- ①它在方法內(nèi)部使用,即這個方法所屬對應(yīng)的引用。
- ②它在構(gòu)造器內(nèi)部使用,表示該構(gòu)造器正在初始化的對象。
?
- this表示當(dāng)前對象,可以調(diào)用當(dāng)前類的屬性、方法和構(gòu)造器。
4.2 this關(guān)鍵字的應(yīng)用示例
package day08;public class Person {private String name;private Integer age;public String getName() {return name;}public void setName(String name) {this.name =
name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age =
age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}'
;}
} View Code package day08;public class PersonTest {public static void main(String[] args) {Person person =
new Person();person.setName("許威威"
);person.setAge(27
);System.out.println(person);}
} View Code ?
5 package關(guān)鍵字
5.1 package關(guān)鍵字的概念
- package語句作為java源文件的第一條語句,指明該文件中定義的類所在的包。
- 其格式如下:
package com.xxx;
- 包對應(yīng)于文件系統(tǒng)的目錄,package語句中,用“.”來指明包(目錄)的層次。
- 包通常用小寫單詞標(biāo)識。通常使用所在公司域名的倒置。
5.2 package關(guān)鍵字的應(yīng)用示例
package day08;public class Person {private String name;private Integer age;public Person() {}public Person(String name) {this(name,
null);}public Person(Integer age) {this(
null, age);}public Person(String name, Integer age) {this.name =
name;this.age =
age;}public String getName() {return name;}public void setName(String name) {this.name =
name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age =
age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}'
;}
} View Code ?
6 import關(guān)鍵字
6.1 import關(guān)鍵字的概念
- 為使用定義在不同包中的java類,需要import語句來引入指定包層次下所需要的類或全部類(.*)。
- import語句告訴編譯器到哪里去尋找類。
6.2 語法格式
import 包名.類名;
6.3 import關(guān)鍵字的應(yīng)用示例
package day07;public class Person {private String name;private Integer age;public Person() {}public Person(String name, Integer age) {this.name =
name;this.age =
age;}public String getName() {return name;}public void setName(String name) {this.name =
name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age =
age;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}'
;}
} View Code package day08;import day07.Person;public class PersonTest {public static void main(String[] args) {Person person =
new Person();person.setName("許威威"
);person.setAge(27
);System.out.println(person);}
} View Code 6.4 注意
- 在源文件中使用import顯示的導(dǎo)入指定包下的類或接口。
- 聲明在包的聲明和類的聲明之間。
- 如果需要導(dǎo)入多個類或接口,那么就需要并列顯示多個import語句。
- 如果導(dǎo)入的類或接口是java.lang包下的,或者是當(dāng)前包下的,則可以省略此import語句。
- 如果在代碼中使用不同包下的同名的類,那么就需要使用類的全類名的方式指明調(diào)用的是哪個類。
- 如果已經(jīng)導(dǎo)入java.util包下的類,如果需要導(dǎo)入util包的子包下的類,依然需要導(dǎo)入。
?
轉(zhuǎn)載于:https://www.cnblogs.com/xuweiweiwoaini/p/10828516.html
總結(jié)
以上是生活随笔為你收集整理的面向对象(上)之三的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。