变量
- 实例变量 对象的属性
- 类变量
- 所有对象共享这个变量
- 标识符:static
标识符
- public、protected、private控制访问权限
- static 指明这是一个类方法(静态方法)
- final 指明这是一个终结方法,不可以被继承的方法
- abstract 指明这是一个抽象方法。只有这个方法的原型,没有具体实现。
方法
- 实例方法 * 表示每一个实例对象的功能或者行为
- 类方法 * 表示所有对象的共同的功能或者行为 * 标识符:static * 不可以被声明为抽象的 * 可以直接调用,也可以通过对象调用
参数传递
- 值传递
- 参数类型为基本数据类型
- 方法不会不改变原有的变量
- 引用传递
- 参数类型为对象类型或者数组时
- 方法会改变传入的对象或者数组
可变长参数
- 可变长参数使用省略号表示,其实质是数组
- 例如, “String ... s” 表示 “String[] s”
- 对于具有可变长参数的方法,传递给可变长参数的实际参数可以使零个到多个对象
概念
- 包是一组类的集合
- 一个包可以包含若干个类文件,还可以包含若干个包
包的作用
- 将相关的源代码文件组织在一起
- 类名的空间管理,利用包来划分名字空间,可以避免类名冲突
- 提供包一级的封装及存取权限
包的命名
- 包的名称是“独一无二的”
- 包名使用小写字母表示,大写开头
编译单元
- 一个java源代码文件称为一个编译单元,由以下三部分组成:
- 所属包的声明
- 引入(import)包的声明 * 类和接口的声明
- 一个编译单元中只能有一个public类,该类名与文件名相同, 编译单元中的其他类往往是public类的辅助类, 经过编译,每个类都会产生一个class文件。
静态引入
- 单一引入,是指引入某一个特定的静态成员
- e.g. import static java.labg.Math.PI;
- 全体引入,是指引入类中的所有静态成员
- e.g. import static java.lang.Math.*;
访问修饰符
- public * 可以被任何方法访问
- protected * 只可以被同一类及其子类的方法访问
- private
- 只能被同一类的方法访问
- e.g. A类的test类就不能直接访问A类的private成员
- default(包访问权限) * 仅允许同一个包的访问
set 方法 和 get 方法
- this 关键字
- 如果方法内的局部变量名与实例变量名相同, 则方法体内访问实例变量时需要this关键字
构造方法
- 方法名与类名相同
- 不定义返回类型
- 通常被声明为public
作用:完成对象的初始化工作
- 若不定义构造方法,编译器自动调用默认构造方法,那么对象变量会为0(基本数据类型)或者null(引用)
自定义构造方法与方法重载
- 在生成对象时给构造方法传送初始值,为对象进行初始化
- 构造方法可以被重载
- 一个类中有两个及以上同名的方法,但参数表不同,这种情况就被称为
方法重载
- 在方法调用时,可以
通过参数列表的不同
来辨别应调用哪一个方法 - 一旦显式地声明了构造方法,编译器就不再生成默认的构造方法
- 我们可以显示声明
无参数
的构造方法,方法体中可以定义默认初始化方式
使用this的重载构造方法
public BankAccount(){
this("",999999,0.0f);
}
public BankAccount(String name, int accountNumber, float balance){
this.name = name;
this.accountNumber = accountNumber;
this.balance = balance;
}