JavaSE面向对象-封装

来源:互联网 发布:淘宝模特拍摄大牌风 编辑:程序博客网 时间:2024/03/29 23:34

一.面向对象的三大特性
说起Java的面向对象,大家想到的都应该是面向对象的三大特征,封装,继承,多态,这里就总结一下面向对象的封装一些知识.
1.封装的概念:
面向对象是一个抽象的,个人认为是对类的一个提升,提取和抽象化,而一些东西你提取了之后,又不想让别人随意的更改,那么你就需要对这个信息就行隐藏,那么这个时候就需要封装。
封装的好处:
1.提高安全性,把不必要的信息隐藏
2.加强对成员属性的控制,提高易用性
3.代码更加的简洁,提高代码的复用性和可读性

因为有封装问题,所以会有一些权限修饰符,在Java中现在就我们涉及的权限修饰符不是很多,有以下几个:

public --->公开的,权限最大的修饰符。protected ---->受保护的,子类和本类,如果是在另外一个包中的子类,也可以使用protected修饰的父类内容default ---->默认权限,包中有效private ---->私有化权限,只能在本类使用

上面几个权限修饰符,修饰类,方法和属性。
get和set方法
在封装的时候,在封装一些信息的时候,对属性进行了private修饰,所以不能够直接去访问,这时候我们就需要提供一个接口来对外提供一个入口,就会用到get和set方法:

set//获得值比如说:private int age;//getpublic void set age(){    this.age = age;//this关键字指向调用对象,这里默认是隐藏的}//setpublic int gerAge(){//因为有返回值,所以要有返回值类型    retun age;}

这就是get和set的用法,暂时只遇到这一个用法,如果有其他的就以后进行补充。this关键字指的就是当前调用这个实例方法的对象,在本类调用对象的时候,可以不用写this
构造方法/重载
1.构造方法在类中作用就是对对象进行一个初始化
2.构造方法也可以用修饰符修饰
3.构造方法方法名和类名字相同
重载:使用相同的方法名实现不同的功能
1.重载只能在本类中
2.方法名必须相同
3.参数列表不相同

class Demo{    priavte int age;    private String name;    private String name;        //定义一个构造方法    public Person(){        //空参构造方法    }    public Person(String name,int age){        //有参构造器    public Person(String name,String sex,int age){        //构造器重载    }}

这里就把重载和构造器一并写了,构造器主要作用就是初始化对象,如果不写构造器,那么系统会自己默认一个空参构造方法。构造方法的传值是在创建对象的时候进行传值。一个类中可以有多个构造器,所有的构造器必须与类同名。
重载就是使用同一个方法名,实现不同的功能,当你只有一个值的时候对应传给一个值的方法,两个值的时候传给两个参数相符的方法,以此类推。

final
在封装的过程中,有final关键字,当被final关键字修饰的时候,一个变量就会转换为一个常量,就变成了不可更改的值
static
在类中用static修饰的变量,就成为了类变量,在整个类中有效
this
this 使用举例
 使用 this 调用成员变量,解决成员变量和局部变量同名冲突。
public void setName(String name){
this.name =name; // 成员变量和局部变量同名,必须使用 this

class Demo1{    static int age = 20//类变量    final String name = "张三";//此时张三这个值就不能在更改public void setName(String name){this.name =name; // 成员变量和局部变量同名,必须使用 this}

总结:因为学了一段时间再来写的这个博客,就当是对封装的一次回顾,总结了一些自己能想起的知识点,也想起一些细节没有注意到的地方,对于封装,使用基本没问题,就是有时候想不到什么时候用封装,细节方面有欠缺

0 0
原创粉丝点击