Java学习笔记五(面向对象思想【封装】)

面向对象的三大特点

封装 继承 多态

Java 封装
在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

要访问该类的代码和数据,必须通过严格的接口控制。

封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

封装的优点

  1. 良好的封装能够减少耦合。

  2. 类内部的结构可以自由修改。

  3. 可以对成员变量进行更精确的控制。

  4. 隐藏信息,实现细节。

访问控制修饰符
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。

default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

public : 对所有类可见。使用对象:类、接口、变量、方法

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
请添加图片描述
对封装来说,最重要的是private 关键字

​ 针对private所修饰的成员变量,如果需要被其他的类使用,提供相应的额外的操作方法:

​ 提供get变量名() 用户获取成员变量(被private)的值 方法的修饰符是public

​ 提供set变量名(参数)方法 用户设置成员变量的值 方法也必须使用public进行修饰
this修饰成员变量;

​可以区分成员变量和局部变量:如果方法的形参和成员变量同名,不带this修饰的变量指的是形参,而this修饰的是成员变量

什么时候使用this?解决局部变量隐藏(屏蔽)成员变量

this的内存原理:

this代表当前调用方法的对象。那个对象调用当前的方法,this就代表那个对象
实现Java封装的步骤

  1. 修改属性的可见性来限制对属性的访问(一般限制为private),例如:
public class Person {
    private String name;
    private int age;
}

这段代码中,将 name 和 age 属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏。

  1. 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问,例如:
public class Person{
    private String name;
    private int age;
​
    public int getAge(){
      return age;
    }
​
    public String getName(){
      return name;
    }
​
    public void setAge(int age){
      this.age = age;
    }
​
    public void setName(String name){
      this.name = name;
    }
}

构造方法

构造方法也称为构造器(constructor),用于对象的初始化。构造方法是一个创建对象时被自动调用的特殊方法。目的就是对对象进行初始化。

构造方法的名称要与类名完全一致。 构造方法没有返回值 (void也不写)

java通过new关键字来调用构造方法,从而返回该类的一个实例对象,是一种特殊的方法

构造方法的注意事项

1 构造方法 如果没有定义构造方法 系统将给出一个默认的无参构造方法

​ 如果定义了构造方法 系统都将不再提供默认的无参构造

2 构造方法的重载

​如果自定义了带参的构造方法,还要使用无参构造,就必须手动写出无参构造

3 无论是否使用无参构造,在开发中,都推荐显式的将无参构造定义出来

4 重要功能:可以使用带参构造为成员变量进行初始化

在构造方法中调用其他的构造方法

   public Student(String name , int age){// 在构造方法中 去调用别的构造方法
        this(name);// 调用本类的构造方法
       this.age =age;
    }

可以使用this(参数列表)调用本类的其他构造方法。但是要注意一点:使用this调用本类其他构造方法 必须位于构造方法的第一条语句。因此也就是说对于构造方法的调用只能调用一次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值