java封装详解

什么是封装

封装是面向对象编程的三大特性之一,分别为封装、继承、多态。封装其实就是对复杂事物的一种简化。任何事物随着不断地发展,总是会越来越复杂,体量越来越大,效率越来越低,管理起来越来越困难。这时候就需要进行分类升级,也就是我们所说的抽象,将相同特征的一类事物进行抽象封装。抽象程度越高,封装就越彻底。软件开发的本质就是对程序复杂程度的管理. 如果一个软件代码复杂程度太高, 那么就无法继续维护. 如何管理复杂程度,封装就是最基本的方法.在我们写代码的时候经常会涉及两种角色: 类的实现者和类的调用者.封装的本质就是让类的调用者不必太多的了解类的实现者是如何实现类的, 只要知道如何使用类就行了.这样就降低了类使用者的学习和使用成本, 从而降低了复杂程。

private实现封装

private是什么意思?

1、是一个权限修饰符,用于修饰成员变量和成员方法.
2、私有是针对类,而不是针对对象,也就是说,同一个类的所有的不同的对象之间,可以互相访问别的对象的私有的成员.
3、被私有化的成员只在本类中有效.

例如

class Person { 
 private String name = "张三"; 
 private int age = 18; 
 
 public void show() { 
 System.out.println("我叫" + name + ", 今年" + age + "岁"); 
 } 
} 
class Test { 
 public static void main(String[] args) { 
 Person person = new Person(); 
 person.show(); 
 } 
} 
// 执行结果
我叫张三, 今年18

此时字段已经使用 private 来修饰. 类的调用者(main方法中)不能直接使用name,age. 而需要借助 show 方法. 此时类的使用者就不必了解 Person 类的实现细节. 同时如果类的实现者修改了字段的名字, 类的调用者不需要做出任何修改(类的调用者根本访问不到 name, age这样的字段).只需要知道show方法即可。

1、private 不光能修饰字段, 也能修饰方法
2、通常情况下我们会把字段设为 private 属性, 但是方法是否需要设为 public, 就需要视具体情形而定. 一般我们希望一个类只提供必要public方法,而不是把所以方法都无脑设为public。

将成员变量私有化,对外提供对应的set(),get()方法。提高对数据访问的安全性。
例如

class Person { 
 private String name;//实例成员变量
 private int age; 
 
 public void setName(String name){ 
 //name = name;//不能这样写
 this.name = name;//this引用,表示调用该方法的对象
 } 
 public String getName(){ 
 return name; 
 } 
 
 public void show(){ 
 System.out.println("name: "+name+" age: "+age); 
 } 
} 
public static void main(String[] args) { 
 Person person = new Person(); 
 person.setName("caocao"); 
 String name = person.getName(); 
 System.out.println(name); 
 person.show(); 
} 

1、getName 即为 getter 方法, 表示获取这个成员的值.
2、setName 即为 setter 方法, 表示设置这个成员的值
3、当set方法的形参名字和类中的成员属性的名字一样的时候,如果不使用this, 相当于自赋值. this 表示当前实例的引用.
4、不是所有的字段都一定要提供 setter / getter 方法, 而是要根据实际情况决定提供哪种方法.
5、 在 IDEA 中可以使用 alt + insert (或者 alt + F12) 快速生成 setter / getter 方法. 在 VSCode 中可以使用鼠标右键
菜单 -> 源代码操作 中自动生成 setter / getter 方法

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值