JavaSE 第六章 封装

1、封装

我们程序设计追求“高内聚,低耦合”。高内聚 :类的内部数据操作细节自己完成,不允许外部干 涉;低耦合 :仅对外暴露少量的方法用于使用。

隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维 护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。

面向对象特点--抽象 从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫作抽 象。 抽象是形成类的必须手段。 面向对象就是对现实世界的一种抽象 使用面向对象的思想描述以上图 片

ava中通过将数据声明为私有的(private),再提供公共的(public)方法:getXxx()和setXxx()实现 对该属性的操作,以实现下述目的:

  • 隐藏一个类中不需要对外提供的实现细节;

  • 使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操 作;

  • 便于修改,增强代码的可维护性;

  • 提高了代码的重用性 隐藏了实现细节,对外提供访问的方式。

如在以前的代码中,将属性直接定义在类中,用户在创建对象的时候,可以给属性任意赋值,如 age,用户在创建对象的时候,赋值为-20,该值就是一个非法的值。此时可以使用封装。

封装的步骤:

1)属性private

2)提供get/set方法

3)在方法中加入流程控制语句

封装特点:

  • 隐藏一个类的实现细节;

  • 调用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操 作;

  • 便于修改,增强代码的可维护性;

四种访问修饰符:

对于class的权限修饰只可以用public和default(缺省)。 public类可以在任意地方被访问。 default 类只可以被同一个包内部的类访问

2、构造方法

在开发中经常需要在创建对象的同时明确对象的属性值,比如员工入职公司就要明确他的姓名、年 龄等属性信息。创建对象就要明确属性值,那怎么解决呢?也就是在创建对象的时候就要做的事情,当 使用new关键字创建对象时,怎么给对象的属性初始化值呢?这就要学习Java另外一门小技术,构造函 数。那什么是构造函数呢?从字面上理解即为构建创造时用的函数,即就是对象创建时要执行的函数。 既然是对象创建时要执行的函数,那么只要在new对象时,知道其执行的构造函数是什么,就可以在执 行这个函数的时候给对象进行属性赋值

构造方法特征:名字和类名保持一致,没有返回值类型 不能被static,final,等修饰,不能有return 语句

构造方法的作用:创建对象,对对象进行初始化。 带参构造方法可以给属性赋值。

语法格式:修饰符 类名(参数列表){

初始化语句;

}

隐式无参构造方法(系统默认提供)

显示定义一个或多个构造方法(无参,有参)

注意:

  • Java语言中,每个类都至少有一个构造方法

  • 一个类中如果没有定义构造方法,默认的有一个public修饰的无参的构造方法。

  • 在一个类中可以定义多个构造方法,形成方法的重载。

  • 如果在类中定义构造方法后,默认的无参构造方法就不存在了。

  • 构造方法不能被继承

JavaBean:

  • 是一种java语言写成的可重用组件

  • 所谓javaBean是指复合如下标准的java

  • 类 类是公共的,public修饰

  • 有一个无参的默认构造方法

  • 属性私有化,提供相应的get|set方法

3、this关键字

this:代表当前对象

可以通过this调用属性,方法,以及构造方法。

通过this调用构造方法,必须放在语句的第一行。

在java中,this关键字是比较难理解的,他在方法内部使用,即这个方法所属对象的应用。在 构造方法总使用,表示该构造方法正在初始化的对象。

如果成员变量和局部变量同名的时候,可以使用this来区分。

总结:

  • 可以在类的构造器中使用"this(形参列表)"的方式,调用本类中重载的其他的构造器!

  • 明确:构造器中不能通过"this(形参列表)"的方式调用自身构造器

  • 如果一个类中声明了n个构造器,则最多有 n - 1个构造器中使用了"this(形参列表)"

  • "this(形参列表)"必须声明在类的构造器的首行!

  • 在类的一个构造器中,最多只能声明一个"this(形参列表)"

4、 包与import

package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句, 则指定为无名包)。它的格式为:package xxx.xxx.xxx;

包对应于文件系统中的目录,package语句中,用"."来指明包(目录)的层次。

包通常用小写单词标识,通常使用所在公司网址的倒置。com.openlab

作用:

  • 包帮助管理大型,将功能相近的类放到一个包中

  • 便于管理类

  • 解决类命名冲突问题

  • 控制访问权限

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值