JAVA--封裝
JAVA--(封裝)
一、封裝:隱藏細節(jié),提供接口
即:我不會告訴你我老婆和孩子的信息以防偷雞,但有時候政府、機構(gòu)要獲取我的這些信息,我只有提供一個訪問端口給他們。
例子1:
Demo1
public class Husband{
? ? ? ? ? ? ? ? ?private? String? name;? ?
? ? ? ? ? ? ? ? ?private? String? ?wife;? ? //不告訴別人,不提供接口
? ? ? ?? ?public void setName(String name){
? ? ? ? ?? ? ? ?this.name = name;? ? ? //訪問類成員變量、
? ? ? ? ? }? ? ? ? ?
? ? ? ? ?public String?getName(){
? ? ? ? ???? ? ?return name;
? ? ? ? ??}
}
main1
public class MyTemplate?{
? ? public static void main(String[] args) {
? ? ? ? Man man = new Man();
? ? ?? ?man.setName("綠");
? ? ????System.out.println(man.getName());
?? ? ?}??
? ? }?
例子2:關(guān)于有參和無參構(gòu)造
Demo2
public?class DiCeng{
? ? ??? ????? ???public? String??name;? ?
? ? ??? ????? ? ?public? int? age;? ??
? ? ? ? ? ? ? ?? public? double salary;
? ? ? ? /****無參構(gòu)造函數(shù)供new對象使用,A? a?=?new A()****/??
? ? ? ? public DiCeng(){
?? ? ? ? }? ? ? ? ?
? ? ? /*****有參構(gòu)造為類中的成員屬性初始化****/
????? ? ?public DiCeng(String name, int age, double salary){
? ? ? ? ? ? ? ? this.name = name;
? ? ? ? ? ? ? ? this.age = age;
? ? ? ? ? ? ? ? this.salary = salary;
??? ??????}
}
main2
public class Template2?{
? ? public static void main(String[] args) {
? ? ? ? DiCeng diceng?= new?DiCeng("資",0,1111.11); //此時不能再調(diào)用new DiCeng()
? ? ? ? System.out.println(diceng.name);
? ? ? ? System.out.println(diceng.age);?
? ? }
}
###this作用####
不僅可以調(diào)用類成員,還可以調(diào)用類方法。
例子3;
Demo3:
public?class Woman{
? ? ????public wife(){
? ? ? ? ? ??System.out.println("結(jié)婚");
?? ? ? ? }? ? ? ? ?
??????? ?public girlfriend(){
? ? ? ? ? ? ?this.wife();
? ? ? ? ? ? ?System.out.println("戀愛");
??? ??????}
}
main3
public class Template3?{
? ? public static void main(String[] args) {
? ? ? ? Woman?woman?=?new Woman();
? ? ? ? ?woman.girlfriend();?
? ? }
}
結(jié)果先結(jié)婚后戀愛