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
作用:
-
包帮助管理大型,将功能相近的类放到一个包中
-
便于管理类
-
解决类命名冲突问题
-
控制访问权限