广东建设安全协会网站怎么设计网站
一,private-私有化
理解:private是访问修饰符的一种,访问修饰符规定了访问权限。
作用:1.修饰属性:该属性只能在类的内部使用;
2.修饰方法,该方法只能在类的内部使用;
// private 修饰方法使用public class Test01{public static void main(String[] args){A a = new A();a.method02();}
}public class A{String str = "周杰伦";private void method01(){System.out.println(str) }public void method02(){method01();}
}
二,封装
1.需求:
模拟银行用户操作余额的功能
2.分析
操作余额(存钱,取钱,查看)
3.代码实现
public class Test01{public static void main(String[] args){User user = new User("2289751581", "123123", "周杰伦", "123456789", '男', 2000);//存钱user.setSurplus(user.getSurplus() + 200);//先看括号里面的,先获取原来的钱2000再加200,然后设置//取钱user.setSurplus(user.getSurplus()-1800);//括号里面先获取原来的钱2200再减1800,然后设置//查看System.out.println(user.getSurplus());//获取}
}
public class User{String userName;String password;String name;String phone;char sex;private double surplus;//余额public User() {}public User(String username, String password, String name, String phone, char sex, double surplus) {this.username = username;this.password = password;this.name = name;this.phone = phone;this.sex = sex;this.surplus = surplus;}//设置余额public void setSurplus(double surplus){//额外的功能double num = (surplus - this.surplus);//现在金额-原来金额System.out.println(LocalDateTime.now() + " -- " + this.name + "用户操作了金额:" + ((num>0)?"+":"") + num);//设置属性this.surplus = surplus;}//获取余额public double getSurplus(){//额外的功能System.out.println(LocalDateTime.now() + " -- " + this.name + "用户获取了金额");//返回余额return surplus;}}
理解:不能直接操作属性,可以添加get/set方法;
步骤:1.私有化属性 2. 添加 get(获取), set(设置)方法
好处:外界不能直接操作属性(有风险),通过get/set方法操作属性,可以在方法 内添加额外功能。
封装:把一个对象的属性私有化,同时提供一些可以被外界访问属性的方法
三,习题:小明把大象关进冰箱
1、分析
大象类:---属性:品种,姓名,性别 方法:吃,叫
冰箱类:--属性:品牌,价格 方法:打开冰箱,关闭冰箱,装大象
人类:---属性:姓名,性别,年龄 方法:打开冰箱,关闭冰箱,装大象
2.代码实现
public class Test01{public static void main(String[] args){Person p = new Person("小明",'男',18);Elephant e = new Elephant("小飞侠",'公',"亚洲象");Fridge f = new Fridge("小米",3999);p.openFridge(f);p.loadElephant(e,f);p.closeFridge(f);}
}//大象类
public class Elephant{String name;char sex;String type;public Elephant(){}public Elephant(String name,char sex,String type){this.name = name;this.sex = sex;this.type = type;}public void eat(){System.out.println(this.name+"吃香蕉");}public void shout(){System.out.println(this.name+"嗷嗷嗷~~~");}
}//冰箱类
public class Fridge{String brand;double price;public Fridge(){}public Fridge(String brand,double price){this.brand = brand;this.price = price;}public void open(){System.out.println(this.brand+"冰箱开门");}public void close(){System.out.println(this.brand+"冰箱关门");}public void load(Elephant e){e.eat();e.shout();System.out.println(this.brand+"牌冰箱装"+e.name);}
}//人类public class Person{String name;char sex;int age;public Person() {}public Person(String name, char sex, int age) {this.name = name;this.sex = sex;this.age = age;}public void openFridge(Fridge f){f.open();}public void closeFridge(Fridge f){f.close();}public void loadElephant(Elephant e,Fridge f){f.load(e);}}