JavaWeb程序员

面向对象-封装

2018-10-30  本文已影响5人  我叫吴智斌

什么是封装
面向对象三大特征之一

1.把对象的状态和行为看成一个统一的整体,将字段和方法放到一个类中
2.信息隐藏:把不需要让外界知道的信息隐藏起来
尽可能隐藏对象功能实现细节,向外暴露方法,保证外界安全访问功能;

封装的好处
1.保证数据的安全
2.提高组件的复用性

使用private字段私有化变量



访问修饰符
访问权限修饰符来规定在一个类里面能看到什么,能暴露什么

访问修饰符 作用
private 表示私有的,表示类访问权限,只能在本类中访问,离开本类之后,就不能直接访问
protected 保护 表示子类访问权限,同包中的可以访问,不同包不能访问,继承也可以访问
public 表示全局的,可以公共访问权限,使用了public修饰,则可以在当前项目中任何地方访问
默认 表示包访问权限,访问者的包必须和当前定义类的包相同才能访问,没能继承

属性概念
什么是属性?
属性和字段类似,也是一个成员变量
但是必须要有getter/setter方法
getter/setter方法才是属性,没有就是字段
一般属性都是私有的,共有的别人可以直接获取何设置值

this关键字

在一个方法当中,要给变量赋值,它会先到方法当中去找有没有该变量,
如果有,就该方法内部的变量赋值,不会在往上去找了,如果没有,就往它上一级去找

在方法当中变量前加上了this,就代表直接给对象当中的字段赋值

this : "这个" 当前正在使用对象的地址

使用:
1.帮我们区分成员变量和局部变量的二异性,必须得要使用this

    String name;
    int age;


    User(String name, int age) {
        this.name = name;//赋值给成员变量
        this.age = age;
    }

2.在同类当中,实例方法的调用,前面其实是有this,可以省略

    void show() {
        System.out.println(this.name);
    }

    void sayHello() {
        this.show();
    }

3.可以把this作为参数传递
4.可以当做返回值
5.static 不能和this一起使用
JVM加载static字节码的时候,this是当前使用对象,对象都没创建出来,所以会报错
6.构造器的重载互调,this();此时this代表是构造器名,必须写到第一行

    User(String name){
        this.name=name;
    }

    User(String name, int age) {
        //必须写到第一行,this代表就是当前的构造器
        this(name);
        
        this.age = age;
    }
上一篇 下一篇

猜你喜欢

热点阅读