本章讲述成员变量,this关键字,隐藏和封装、static关键字的概念和用法。在java中创建对象必须建构于构造方法,对象创建成功后,可以通过对象调用类中的方法,方法在调用前,必须对方法进行声明。在一个类中,主要包括方法和成员变量(或称为属性),属性表示类所具有的特性,而方法表示类所具有的行为。一个优秀的程序必须离不开方法和属性,而java面对对象程序设计技术博大精深、本章将简要讲解面对对象的知识。
一、成员变量
1.成员变量的概述:
在java中,变量可以分为成员变量和局部变量,成员变量是在类中范围内定义的变量,局部变量是在方法中定义的变量,java程序中的变量划分如图
java中的成员变量分为类属性和实例属性两种,定义属性时没有static修饰符修饰的就是实例属性。其中,以类的属性从类被加载开始存在,直到系统完全销毁该类,类属性的作用域与该类的生命周期相同。而实例属性则是从类的实例被创建起开始存在,直到系统销毁该类实例,实例属性的作用域与其对应的实例的生命周期相同。
2.成员变量的使用
成员变量在使用之前,需要先进去声明,声明成员变量是在类的内部、方法的外部定义的变量,成员变量分为实例变量和类变量。实例变量作用域是相当所属实例的范围,在类的成员变量的作用域是整个类范围。
成员变量的声明要给出变量名、变量类型以及其它特性,其语法如下:
【<修饰符>】【static】【final】<变量类型><变量名>
static:表示一个类的成员变量,即静态成员变量。
final:表示是一个常量。
二、this关键字
java提供了一个this关键字,它可以代表任何对象,也可以说是指向调用该方法的对象。当this出现在某个方法体中时,其所表达的对象是不确定的。但其类型是确定的,其所代表的对象只能是当前类;只有当该方法被调用时,它所代表的对象才被确定下来,谁在调用该方法,this就代表谁。
this关键字的最大作用就是让类中的一个方法访问该类中的另外一个方法或实例成员变量。
三、隐藏和封装
1.封装的概念
封装是面对对象三大特性之一,它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法实现对内部信息的操作和访问。
封装是面对对象编程语言对客观事件的模拟,客观世界中的属性均被隐藏在对象内部,外界无法直接操作和修改,如人的年龄属性只能随岁月的流逝而增加,通常不能随意修改人的年龄。对一个类来说对象实现良好的封装,可以实现以下目的: (1)隐藏类的实现细节。 (2)让使用者只能通过事先预定的方法访问数据,从而可以在该方法中加入控制逻辑,限制对属性的不合理访问。 (3)可进行数据检查,从而有利于保证对象信息的完整性。 (4)便于修改,提高代码的可维护性。 现实良好的封装,需要从以下两个方面考虑: (1)隐藏对象的属性和实现细节,不允许外部直接访问。 (2)暴露出方法,让方法控制对这些属性进行安全的访问和操作。 因此,封装实际上有两个方面的含义:隐藏该隐藏的,暴露该暴露的。这两个方面需要通过使用java提供的访问控制符来实现。
2.使用访问控制符
private——>default——>protected——>public
访问修饰符 | 同一个类中 | 同一个包中 | 子类中 | 所有类中 |
private | 对 | —— | —— | —— |
default | 对 | 对 | —— | —— |
protected | 对 | 对 | 对 | —— |
public | 对 | 对 | 对 | 对 |
通过表格,可知访问修饰符用于控制一个类的成员是否可以被其他类访问。对于局部变量而言,其作用域就是其所在的方法,因而不可能被其他类访问,因此不能使用访问控制符修饰。
四、static关键字
1.简述static关键字的含义和用法
类的成员变量包含静态变量(也称为类变量)和实例变量。静态成员变量是被static关键字修饰的成员变量,静态成员变量属于其所在类,被类中的所有实例共享,静态成员变量可通过类直接访问,也可通过类的实例访问。 例如: private static int count = 500;
static{ System.out.println("xxxxxxx") }