java基础
**
Java面向对象之封装
**
上一篇博客中简单介绍了类与对象,我们知道,Java是面向对象语言。此篇博客则对Java的面向对象的特征——封装简单概述一下。

首先我们知道,面向对象的基本特征是封装、继承、多态。
首先我们对封装进行分析。

封装:
我们的java里那个public class 类名{}中,为什么是public呢?
这里这就是因为我们的关键字,下面我将对封装的几个关键字进行分析
关键字:public、protected、private
private | 默认权限 | protected | public | |
同一个类 | √ | √ | √ | √ |
同一个包 | √ | √ | √ | |
子类 | √ | √ | ||
全局 | √ |
上面四个分别代表了各自关键字所控制的访问权限。
我们一般给类的成员private权限。
然后给成员相应的get、set方法
get、set相应的业务逻辑代码
作用:“高内聚,低耦合”
高内聚:类内部的数据操作细节自己完成,不允许外部干涉。
低耦合:仅暴露少量的方法供外部使用,尽量方便外部调用。
这么一搞,我们的成员属性就被我们的类给控制起来,没有类的同意,这个属性是没有办法修改的,这就达到了我们Java的封装性。

特点:
1、隐藏了功能实现过程,外界只需要通过公共的访问方式访问即可。
2、提高了代码的复用性。
3、提高了程序安全性。

public class User{//这是我们的实体类
private String name;//属性名字
private int age;//属性年龄
//属性年龄和名字的get、set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class test{
public static void main(String[] args) {
//User.name;User.age; name;age;
//我们发现这两种形式直接报错
User user = new User();
user.
}
}
我先写到这里。猜一猜这个user.能.出来什么

我们一起来看看


还记得我的User类里怎么写的了么。忘了的往上翻
private String name;//属性名字
private int age;//属性年龄
public void setAge(){}…
发现我们的属性是private,而方法是public
所以我们不能直接用user点出来name和age
这就是我们封装的用法了。它提高了程序的安全性和复用性。我们之后业务层代码将经常使用这个Java的封装性。
属性注入:
属性注入是我们对一个实体类属性的设置。
学习了封装性后,我们知道,一般我们不建议将实体类的属性权限设置高,一般使用private。
但private我们知道,它使得这个属性只能在本类里使用这个属性。
因此:我们在其他业务层使用代码书写时用到了这个实体类,要对它进行属性的书写,我们目前有两种实现方式。
1、有参构造方法属性注入
注意:书写有参构造函数后,默认构造函数则不会生效。自己在书写一个无参的构造函数即可,内容无即可。(不报错的原因之后解释)
2、使用set方法属性注入
使用这两种方式时,我们要在实体类里书写相应的东西,即构造函数和set方
法
有了这个两个,我们便可使用对象对对象的属性赋值
同样,很多编译器会在你写好属性后有generous生成get/set方法和构造方法
idea eclipes

上一篇 》
类和对象
下一篇 》
面向对象——继承