JavaBasic 类的封装
封装的概念
封:
限制代码可以被使用调用的“范围”
”范围“:项目的结构目录
src:源码目录
包:给代码文件分类
类文件:写代码的文件
类:代码
属性 方法
为了数据操作的”安全“性 数据的格式 使用范围 规范性
装:
打包,提供一种比较使用方便的范式
访问权限修饰符
public:整个项目都可写
private:只能在本类中使用
protected:子类或本类中可以使用
封装方法:get/set
格式:get属性名/set属性名
set:给属性赋值
get:得到属性的值
读写:
封装方法实现了读写分离
格式更加规范,代码更加简便
对传入的数据进行验证
对返回的数据进行格式化
this指针
指代调用这部分代码的对象
一个对象在调用自己类中的属性时 可以使用this指针
也可以用于方法调用
构造函数
格式:以调用名为函数名的初始函数
没有返回值结构
创建对象时使用
每个类自带一个隐式的空构造函数
若书写了一个含参的构造函数,则空构造函数无法使用
##创建对象时也需要封装
不让类之外来创建对象
单例模型:
一个类中只有一个对象
实现单例:
1: 私有化构造函数
2: 在类中创建一个唯一的对象 关键字:static
3: 在类之外可使用类名调用
static : 静态的
修饰属性 变量时 在内存中只会创建一次且一个
可以用类名直接调用
package lyq02281;
public class User {
private String name;
private int Age;
private String password;
private int id;
private int score;
private long time;
static User king = new User();
private User(){
System.out.println("User的构造函数");
}
private User(String name,int Age,String password,int id,int score,long time){
this.name=name;
this.Age=Age;
this.password=password;
this.id=id;
this.score=score;
this.time=time;
}
public void setName(String name){
if(name.length () < 5){
throw new IllegalArgumentException ("用户名的长度至少有5个字符。");
}
// 就近原则 使用最近定义的变量名
this.name = name;
// getName ();
}
public String getName(){
return this.name;
}
}
class Manage{
public static void main(String[] args) {
User u1 = User.king;
u1.setName ("LinYQ");
System.out.println(u1.getName());
}
}
运行结果
![](https://img-blog.csdnimg.cn/img_convert/206427ddc17eab0231fc2c6930233196.png)