JAVA-learning

MOOC addresss

2.2-2 数据成员

变量  

  • 实例变量  对象的属性
  • 类变量  
    • 所有对象共享这个变量
    • 标识符:static

2.2-3 方法成员

标识符

  • public、protected、private控制访问权限
  • static 指明这是一个类方法(静态方法)
  • final 指明这是一个终结方法,不可以被继承的方法
  • abstract 指明这是一个抽象方法。只有这个方法的原型,没有具体实现。

方法

  • 实例方法    * 表示每一个实例对象的功能或者行为
  • 类方法      * 表示所有对象的共同的功能或者行为  * 标识符:static  * 不可以被声明为抽象的  * 可以直接调用,也可以通过对象调用

参数传递

  • 值传递
    • 参数类型为基本数据类型
    • 方法不会不改变原有的变量
  • 引用传递
    • 参数类型为对象类型或者数组时
    • 方法会改变传入的对象或者数组

可变长参数

  • 可变长参数使用省略号表示,其实质是数组
  • 例如, “String ... s” 表示 “String[] s”
  • 对于具有可变长参数的方法,传递给可变长参数的实际参数可以使零个到多个对象

2.2-4 包(package)

概念

  • 包是一组类的集合
  • 一个包可以包含若干个类文件,还可以包含若干个包

包的作用

  • 将相关的源代码文件组织在一起
  • 类名的空间管理,利用包来划分名字空间,可以避免类名冲突
  • 提供包一级的封装及存取权限

包的命名

  • 包的名称是“独一无二的”
  • 包名使用小写字母表示,大写开头  

编译单元

  • 一个java源代码文件称为一个编译单元,由以下三部分组成:
    • 所属包的声明
    • 引入(import)包的声明  * 类和接口的声明
  • 一个编译单元中只能有一个public类,该类名与文件名相同, 编译单元中的其他类往往是public类的辅助类, 经过编译,每个类都会产生一个class文件。

静态引入

  • 单一引入,是指引入某一个特定的静态成员
  • e.g. import static java.labg.Math.PI;
  • 全体引入,是指引入类中的所有静态成员
  • e.g. import static java.lang.Math.*;

2.2-5 类的成员访问权限控制

访问修饰符

  • public  * 可以被任何方法访问
  • protected  * 只可以被同一类及其子类的方法访问
  • private
    • 只能被同一类的方法访问
    • e.g. A类的test类就不能直接访问A类的private成员
  • default(包访问权限)  * 仅允许同一个包的访问

set 方法 和 get 方法

  • this 关键字
    • 如果方法内的局部变量名与实例变量名相同,   则方法体内访问实例变量时需要this关键字

2.3-1 对象初始化

构造方法

  • 方法名与类名相同
  • 不定义返回类型
  • 通常被声明为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;
}