1.封装
1.封装的概念
封装是面向对象的三大特性之一,就是将类的状态信息隐藏在类内部,不允许外部程序直接访问,而通过该类提供的方法实现对隐藏信息的操作和访问。
2.封装的步骤
- 实现封装的具体步骤如下。
- 第一步:修改属性的可见性来限制对属性的访问。
- 第二步:为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的存取。
- 第三步:在赋值方法中,可以加入对属性的存取控制语句。
1.修改属性的可见性
将类中的属性私有化,即将AppleTree类的属性由public修改为private,目的限制对属性的访问。这里,private为访问修饰符,标识private的属性和方法只能在定义它的类的内部被访问。
2.创建赋值和取值的方法
属性被修改为private后,其他类就无法访问了。如果要访问它,就需要为每个属性创建一对getter()方法和setter()方法,用于对这些属性的存取。其中,setter()方法用来更新变量值,getter()方法用来读取变量值。
2.构造方法
1.构造的概念
如果需要设置的属性很多,就会非常麻烦。可否在创建对象的时候就完成赋值操作呢?在java中,可以通过自定义类的构造方法执行一些初始化操作,如给成员变量赋值初始值等。定义构造方法的语法如下:
[访问修饰符】 方法名 ([ 参数列表 ]){
//……省略方法体的代码
}
2.构造的注意事项
- 需要注意的是,构造方法的名称必须和类名相同,但是没有返回值类型。另外,在构造方法的
- 定义中参数列表是可选的因此可以定义无参构造方法,也可以定义带参构造方法。事实上,在
- java中,每一个类都至少有一个构造方法。如果没有创建,则系统会自动创建一个默认的构造
- 方法。默认构造方法是没有参数的,而且在方法体中没有代码。
3.方法重载
1.方法重载的定义
- 方法重载指的是同一个类包含两个或两个以上的方法,它们的方法名相同,方法参数的个数或参数类型不同。成员和构造方法都可以进行重载。
2.方法重载的特点
方法重载判断的依据如下:
- 必须在同一个类中
- 方法名相同。
- 参数列表(方法参数的个数或参数类型)不同。
注意!
方法的返回值和方法的访问修饰符不能作为判断方法之间是否构成重载的依据。
3.方法重载的使用和优点
了解了方法重载的概念,下面看一个具体的示例。
问题
实现一个加法器,允许对不同类型的数据进行运算并输出结果,其包括整型、浮点型和字符串型。
分拆
实现的功能相同,但是参数类型不同,因此考虑通过方法重载实现。
4.类和类成员的访问控制
1.类的访问修饰符
java中类的访问修饰符如下表
在之前的示例中,定义类使用的都是public访问修饰符。如果省略public,则为默认修饰符。
2.类成员的访问修饰符
java中类成员的修饰符如下表
5.static关键字
- static关键字可以修饰类的属性、方法和代码块。使用static修饰的属性和方法不再属性于具体的某个对象,而属性它所在的类。
- 在java中,一般情况下调用类的成员需要先创建类的对象,然后通过对象进行调用。使用static关键字可以实现通过类名加"."直接调用类的成员,不需要再消耗资源反复创建对象。