封装
就是将类的成员变量、方法等隐藏在类的内部,不允许外部直接访问,而是通过该类提供的方法来实现隐藏信息(成员变量)的操作和访问。
封装的优点
- 防止外部直接访问类的内部数据,可以保护数据的安全性
- 通过外部的访问可以更好地控制数据的正确性和完整性
- 可以隐藏类的实现细节,使得类的用户不需要了解类的内部实现细节,只需要知道如何使用类提供的接口
- 提高代码的复用性
封装的步骤
1.修改字段的可见性:由 public 修改为 private(其他类无法访问)。
2.设置Getter 和 Setter 方法
Getter 方法:
- 命名规则:使用属性名前加上 “get” 作为方法名前缀,属性名首字母通常大写。
- 返回类型:通常与属性的类型相同。
- 方法体:直接返回属性值。
Setter 方法:
- 命名规则:使用属性名前加上 “set” 作为方法名前缀,属性名首字母通常大写。
- 返回类型:通常只有一个参数,参数类型与属性的类型相同。
- 方法体:将传入的参数值赋给属性。
布尔类型属性的 Getter 方法:
-
命名规则:使用属性名前加上 “is” 作为方法名前缀,属性名首字母通常大写。
-
返回类型:通常是布尔类型。
-
方法体:返回属性的值。
例:
package com.kfm.OOP.Demo;/*
@CreatTime:2023-08-16 14:07
*/
public class Student {
private int age;
private String name;
//设置setter方法、对属性进行赋值
public void setAge(int age){
if(age > 18 && age < 80){
this.age = age;
}
else{
System.out.println("输入有误");
}
}
public int getAge(){
return age;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
package com.kfm.OOP.Demo;/*
@CreatTime:2023-08-16 16:28
*/
public class StudentTest {
public static void main(String[] args) {
Fengzhuang f = new Fengzhuang();
f.setName("甜甜");
f.setAge(-18);
f.getAge();
//f.getName();
System.out.println("我是" + f.getName() +" 今年" + f.getAge() );
}
}
包装类(简单了解)
Java 提供了包装类(Wrapper Class)来表示基本数据类型的对象形式,如下:
基本类型 | 包装类 |
---|---|
boolean | Boolean |
char | Character |
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
默认值是null
装箱/拆箱
Java 提供了自动装箱(Autoboxing
)和自动拆箱(Unboxing
)机制,使得基本类型和包装类之间的转换更加方便。
-
自动装箱:将基本类型自动转换为对应的包装类对象。
-
自动拆箱:将包装类对象自动转换为对应的基本类型。
例:
// 自动装箱
Integer i = 90;
// 自动拆箱
int num = i;