网站首页 > java教程 正文
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面向对象高级特性-封装 知识点的整理与总结的全部内容,希望对你有帮助。。。。。。。
分割线
扩展知识
分割线
博主为咯学编程:父母不同意学编程,现已断绝关系;恋人不同意学编程,现已分手;亲戚不同意学编程,现已断绝来往;老板不同意学编程,现已失业三十年。。。。。。如果此博文有帮到你欢迎打赏,金额不限。。。
猜你喜欢
- 2024-11-13 Java面向对象三大特征:封装、继承、多态
- 2024-11-13 利用Java注解的简单封装,进行的一次优化
- 2024-11-13 如何封装原生的 Java NIO 以及扩展?详细到让你分分钟搞定Netty
- 2024-11-13 Java面向对象——基础2 封装、继承、多态
- 2024-11-13 想要 Spring Data JPA/MongoDB 更易用,你应该这样封装
- 2024-11-13 Java基础类型与封装类型的区别与联系
- 2024-11-13 java包装类的自动封装、自动拆箱和缓存
- 2024-11-13 java程序员必备的基础知识_java面向对象之封装(二)
- 2024-11-13 Java面试基础回顾03-封装(java基础面试题及答案)
- 2024-11-13 java程序员必备的基础知识_java面向对象之封装(一)
你 发表评论:
欢迎- 06-15Linux中如何通过Shell脚本来控制Spring Boot的Jar包启停服务?
- 06-15推荐一款超棒的SpringCloud 脚手架项目
- 06-15IDEA将项目打包成jar包(idea打包普通java项目)
- 06-15Spring Boot3 项目 jar 包打包成 Docker 镜像全攻略
- 06-15记录Dockerfile将jar包构建成部署所需的镜像
- 06-15项目基础部署汇总八---linux下xxl-job安装
- 06-15Spring Boot Jar 包秒变 Docker 镜像实现多环境部署
- 06-15终端执行 java -jar example.jar 时报错:“没有主清单属性” 的解决
- 最近发表
-
- Linux中如何通过Shell脚本来控制Spring Boot的Jar包启停服务?
- 推荐一款超棒的SpringCloud 脚手架项目
- IDEA将项目打包成jar包(idea打包普通java项目)
- Spring Boot3 项目 jar 包打包成 Docker 镜像全攻略
- 记录Dockerfile将jar包构建成部署所需的镜像
- 项目基础部署汇总八---linux下xxl-job安装
- Spring Boot Jar 包秒变 Docker 镜像实现多环境部署
- 终端执行 java -jar example.jar 时报错:“没有主清单属性” 的解决
- 如何将本地JAR文件添加到Maven项目中
- Java 类隔离应用:多 Jar 包支持(java接口隔离原则)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)