package day06;
/*
*需求:使用java类描述百合网的会员。
*问题: 性别有问题?
*
*根本原因:由于其他人可以直接操作Sex 属性,可以对sex属性直接赋值。
*
*面向对象的三大特征:继承,封装,多态
*
*封装:
*
*
*权限修饰符:权限修饰符就是控制变量可见范围的
*public : 公共的,任何人都可以访问
*
*private: 私有的,只能在本类中进行直接访问。
*
*封装的步骤:
* 1.使用private 修饰需要被封装的属性。
* 2.提供一个公共的方法设置或者获取该私有的成员属性。
* 命名规范:
* set属性名();
* get属性名();
*
*问题:封装一定要提供get set 方法吗?
* 不一定,根据需求而定。
*
*规范:在现实开发中一般所有实体类的所有成员变量都要封装起来。
*
*实体类:实体类就是用于描述一类事物的;
*工具类(Arrays数组的工具类)
*
*封装的好处:
* 1.提高数据的安全性
* 2.操作简单
* 3.隐藏了实现
*需求:使用Java类描述一个计算器类,计算器具备操作数1, 操作数2,操作符三个公共的属性,
*还需具备运算的功能行为。
*要求:不能直接对操作数1,操作数2,运算符这些属性进行直接的赋值,要封装起来。(+ - * /);
*
*/
class Member{
public String name; //名字
private String sex; //性别
public int salary; //薪水
//定义一个公共的方法设置sex属性
public void setSex(String s){//注意:如果比较两个字符串内容是否一致,不要使用“==”比较,使用equals方法
if(s.equals("男")||s.equals("女")){
sex = s;
}else{
sex = "男";
}
}
public String getSex(){
return sex;
}
//聊天
public void talk(){
System.out.println(name + "聊得非常开心");
}
}
public class Demo5 {
public static void main(String[] args) {
Member m = new Member();
m.name = "张三";
m.setSex("女");
m.salary = 8000;
System.out.println("姓名:"+m.name+",性别:"+m.getSex()+",薪水:"+m.salary);
}
}