大家好!
前言
大家好!随着近几年互联网的快速发展,编程语言已经是非常炙手可热的一门技术了,今天我给大家分享的是Java基础中的封装。
一、封装思想【理解封装】
1. 封装的概述 是面向对象三大特征之一(封装,继承,多态) 是面向对象编程语言对客观世界的模拟,客观世界 里成员变量都是隐藏在对象内部的,外界是无法直接操作的。
2. 封装的原则 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏 信息的操作和访问 成员变量private,提供对应的getXxx()/setXxx()方法。
3. 封装的好处 通过方法来控制成员变量的操作,提高了代码的安全性 把代码用方法进行封装,提高了代码的复用性。
二、Private
1.理解private
一提到封装那么肯定就会有private,private也就成为了封装的关键词。那么private到底是什么呢?
1.private是一个修饰符,可以用来修饰成员(成员变量,成员方法)
2.被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用,提供相 应的操作。
3.提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰。
4.提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰。
代码如下:
package com.xxgc.ch01.po;
/**
* 员工类
*/
public class Emp {
//属性
//访问修饰符:public:公共的 private:私有的,只有当前类内部可用
public int empNo;
public String empName;
private int age;
//工作
public void working(){
System.out.println("hello!");
}
public int getAge(){
return age;
}
//提供set方法,设置值
public void setAge(int age){
if(age<0 || age>500){
System.out.println("年龄有误!");
}else{
this.age = age;
}
}
}
注意:当类中的变量名和方法中的变量名相同时,使用this来区分。this.变量名是类中的变量。不带this的变量名则是方法中的变量。
package com.xxgc.ch01.test;
/**
*
* 员工测试类
*/
import com.xxgc.ch01.po.Emp;
public class EmpDemo2 {
public static void main(String[] args) {
Emp emp = new Emp();
emp.empName = "张飞";
// emp.age = 10; 年龄不能访问
emp.setAge(30);//设置
int a = emp.getAge();//取值
System.out.println("年龄:"+a);
}
}
在这里有一个快速调取get,set方法的一个小技巧。(作者用的是idea2021)
首先选中要封装变量的名称,右击鼠标,点击重构,再点击封装字段就可以快速的调出get和set方法了。
2.private的使用【应用】
需求:定义标准的汽车类,要求carNo和brand使用private修饰,并提供set和get方法,测试类中 创建对象并使用,最终控制台输出汽车信息。
package com.xxgc.ch01.po;
public class Car {
//1.把属性变为私有
private String carNo;
private String brand;
private int price;
public String getCarNo() {
return carNo;
}
public void setCarNo(String carNo) {
this.carNo = carNo;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
package com.xxgc.ch01.test;
import com.xxgc.ch01.po.Car;
public class CarDemo {
public static void main(String[] args) {
Car car = new Car();
car.setCarNo("鲁A666888");
car.setBrand("沃尔沃");
//输出汽车的车牌号
String no = car.getCarNo();
System.out.println("车牌:"+no);
}
}
总结
这就是Java的封装,感谢各位的观看!有什么不足欢迎大家补充!