Java面向对象高级特性-封装

涎涎原创约 633 字大约 2 分钟...JavaJava

197-Java面向对象高级特性-封装.mdopen in new window

注意

本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。

package com.tencent.chapter07.封装;


/**
 * <p>Title: Employee</p>  
 * <p>
 *    Description: 
封装:
隐藏属性、方法或实现细节的过程称为封装

特点:
1.构造器与类一般使用public修饰
2.属性一般使用private修饰,对外提供访问器访问属性,get方法取值,set方法赋值

好处:
1.隐藏类的实现细节
2.让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作
3.可进行数据检查

-----------------------------------------------------------------------------

修饰类:               public <default>
修饰变量、方法:public protected <default> private

public:   同类、同包、不同包子类、不同包
protected:同类、同包、不同包子类
<default>:同类、同包
private:  同类
 * </p>  
 * @author xianxian 
 * @date 2023年1月4日
 */
public class Employee {

	/**员工编号*/
	private int empno;
	
	/**员工姓名*/
	private String ename;
	
	/**员工工资*/
	private double salary;
	
	/**访问器(get与set)*/
	public int getEmpno()
	{
		return empno;
	}
	public void setEmpno(int empno)
	{
		this.empno = empno;
	}
	
	public String getEname()
	{
		return ename;
	}
	public void setEname(String ename)
	{
		//3.可进行数据检查
		if(ename == null || "".equals(ename))
		{
			System.out.println("雇员姓名不能为空");
			return;
		}
		
		this.ename = ename;
	}
	
	public double getSalary()
	{
		//1.隐藏类的实现细节
		return calSalary();
	}
	public void setSalary(double salary)
	{
		//2.让使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作
		if(salary < 2600)
		{
			 System.out.println("薪资不能小于2600");
			 return;
		}
		
		this.salary = salary;
	}
	
	//1.隐藏类的实现细节
	private double calSalary()
	{
		return salary + 5000 + 300 + 200 + (10000*0.1);
	}
}
package com.tencent.chapter07.封装;


public class EmployeeTest {

	public static void main(String[] args) {
		Employee scott = new Employee();
		//scott.empno = 7788;
		//scott.ename = "斯卡特";
		//scott.salary = -10000;//属性已被private修饰,不允许类以外的人访问
		
		//调用set方法赋值
		scott.setEmpno(7788);
		scott.setEname(null); //雇员姓名不能为空
		scott.setEname("斯卡特");
		//scott.setSalary(-10000);//薪资不能小于2600
		scott.setSalary(2600);//薪资不能小于2600
		
		//调用get方法取值
		System.out.println(scott.getSalary());
	}
}

分割线


相关信息

以上就是我关于 Java面向对象高级特性-封装 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。

上次编辑于:
贡献者: 涎涎
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.4