封装的的应用场景和步骤

封装是面向对象编程的重要特性,通过使用private修饰属性并提供get/set方法来提高数据安全性。在需要保护属性不被直接访问时,如实体类的成员变量,可以采用封装。封装不一定强制提供get/set方法,完全取决于需求。示例中展示了如何在会员和计算器类中应用封装,限制对性别、年龄等属性的直接访问,并实现特定逻辑。

封装的步骤:

1. 使用private修饰需要被封装的属性。

2. 根据需求提供公共的方法set或者get法获取以及设置该私有属性的值。

方法的命名规范:

set属性名 或者  get属性名

封装的好处:

1. 提高了数据的安全性。

2. 操作简单。

3. 隐藏了实现。

 

疑问:封装的应用场景? 

如果一个属性不想被其他人直接的访问,那么这时候就可以使用封装。

现实开发中的实体类的成员属性(成员变量)一般我们都会封装起来。

 

实体类:用于描述一类事物的类则称作为实体类。   比如: 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类描述一个计算器,计算器具备 的公共属性: 操作数、操作数、 运算符.

 

公共的功能:运算。 

 

要求: 计算器的属性需要封装起来,不能直接对计算器的属性赋值。 

 

计算器类

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();

 

}

}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值