封装的步骤:
1. 使用private修饰需要被封装的属性。
2. 根据需求提供公共的方法set或者get方法获取以及设置该私有属性的值。
方法的命名规范:
set属性名 或者 get属性名
封装的好处:
1. 提高了数据的安全性。
2. 操作简单。
3. 隐藏了实现。
疑问1 :封装的应用场景?
如果一个属性不想被其他人直接的访问,那么这时候就可以使用封装。
现实开发中的实体类的成员属性(成员变量)一般我们都会封装起来。
实体类:用于描述一类事物的类则称作为实体类。 比如: class Car{ } class Student
疑问2:封装一定需要提供get方法和set方法吗?
不一定,看使用这个类的人需要需要使用到(看需求).
权限修饰符: 权限修饰符就是用于控制变量或者方法的可见范围。
public : 公共, public 修饰的变量或者方法可以在任何范围内可见。
private : 私有的, private 修饰的变量或者是方法只能在本类中可见。
问题:出现了性别错乱的问题。
需求: 使用java类描述一个世纪佳缘网站的会员。
class Menber{
public String userName; //用户名
privateString sex; // 性别
private int age; //年龄
public int salary; //收入
//提供一个公共的方法设置性别
public void setSex(String s){
if(s.equals("男")||s.equals("女")){
sex = s;
}else{
//默认是男
sex = "男";
}
}
//提供一个公共方法获取性别
public String getSex(){
return sex;
}
public void meet(){
System.out.println("姓名:"+ userName+ " 性别:"+ sex+" 收入:"+ salary);
}
}
class Demo7
{
public static void main(String[] args)
{
Menber m = new Menber();
//给会员赋予属性值
m.userName = "狗娃";
m.setSex("女");
m.salary = 10000;
System.out.println("姓名:"+ m.userName+ " 性别:"+ m.getSex()+" 收入:"+ m.salary);
}}
/*
需求:使用java类描述一个计算器,计算器具备 的公共属性: 操作数1 、操作数2 、 运算符.
公共的功能:运算。
要求: 计算器的属性需要封装起来,不能直接对计算器的属性赋值。
计算器类
class Caculator{
private int num1; //操作数1
private int num2; //操作数2
private char option; //运算符
//提供公共的方法设置计算器的属性
public void init(int n1 ,int n2 , char o){
if(o=='+'||o=='-'||o=='*'||o=='/'){
option = o;
}else{
option='+';
}
num1 = n1;
num2 = n2;
}
//运算的功能
public void caculate(){
switch(option){
case '+':
System.out.println("加法运算:"+(num1+num2));
break;
case '-':
System.out.println("减法运算:"+(num1-num2));
break;
case '*':
System.out.println("乘法运算:"+(num1*num2));
break;
case '/':
System.out.println("除法运算:"+(num1/num2));
break;
}
}
}
class Demo8
{
public static void main(String[] args)
{
Caculator c = new Caculator();
//设置计算器的属性值
c.init(12,2,'/');
//调用计算器的计算功能
c.caculate();
}
}
封装是面向对象编程的重要特性,通过使用private修饰属性并提供get/set方法来提高数据安全性。在需要保护属性不被直接访问时,如实体类的成员变量,可以采用封装。封装不一定强制提供get/set方法,完全取决于需求。示例中展示了如何在会员和计算器类中应用封装,限制对性别、年龄等属性的直接访问,并实现特定逻辑。
513

被折叠的 条评论
为什么被折叠?



