java基础之封装
面向对象的三个重点:封装、继承和多态
概念:把抽象出的数据(属性)和对数据的操作(方法)封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作(方法),才能对数据进行操作。
比如,对电视机的操作就是典型的封装
理解和好处:
1.隐藏实现细节:调用写好的方法就行
2.可以对数据进行验证,保证安全性
封装的实现:
1.将属性进行私有化(不能直接修改属性)
2.提供一个公共的(public)set用于对属性判断并赋值
public void setxxx(类型 参数名){//xxx表示某个属性
//加入验证的业务逻辑
属性=参数名;
}
3.提供一个公共的(public)get方法,用于获取属性的值
public 数据类型 getxxx(){//权限判断,xxx某个属性的值
return xxx;
}
练习:
总结:
1.两个快捷键的使用
2.用set和get方法对private的属性进行操作
可以增加权限的判断,增加业务逻辑
package com.stu;
public class encapsulation01 {
/*
那么在iava中如何实现这种类似的控制呢?
请大家看一个小程序(Encapsulation01.java),不能随便査看人的年龄,工资等隐私,
并对设置的年龄进行合理的验证。
年龄合理就设置,否则给默认年龄,必须在 1-120,年龄, 工资不能直接査看, name的长度在 2-0字符。之间
*/
public static void main(String[] args) {
Person person = new Person();
person.setName("jack00000");
person.setAge(300);
person.setSalary(30000);
System.out.println(person.info());//这里是输出返回的字符串
}
}
class Person{
public String name;//名字公开
private int age;//age私有化
private double salary;//..
//自己手写get和set方法太慢,我们可以使用快捷键
//alt+insert
//运行快捷键:alt+u+u
public void setName(String name){
//限制:名字在2~6个字符
//相当于增加了业务逻辑
if(name.length()>=2&&name.length()<=6){
this.name = name;
}else {
System.out.println("名字的长度不对,需要默认名字");
this.name="无名人";
}
}
public String getName(){
return name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
//限制:年龄在1~120
if(age>=1&&age<=120){
this.age = age;
}else {
System.out.println("你设置的年龄不对,年龄需要在1~120,给默认年龄18");
this.age=18;
}
}
public double getSalary() {
//增加对当前对象的权限判断
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
//在返回字符串这里,我一开始有点懵了
public String info(){
return "信息为 name=" + name + " age=" + age + " salary=" + salary;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理