Java复习笔记+经验总结-02 面向对象基础

对象:客观世界中存在的人、事、物等实体,例如:鸟,人,鱼等.

对象和类:对象是符合某种类(Class)所产生出来的实例,对象具有属性和方法,在面向对象程序设计中,使用属性来描述对象的状态,使用方法来处理对象的行为.

:类是同一事物的统称,是一个抽象的概念.

面向对象程序设计的特点: 封装、继承、多态、(抽象)

注意:文件名必须和公有类(public)的类名相同

类体:由成员方法和成员变量构成.

变量的有效范围:

成员变量:在类中声明, 在整个类中有效

局部变量:在方法内或方法内的复合代码块

: public void f(){

int i;

      }

       {

    int j;

  }

   i, j 只在对应方法或代码块内有效

注意:成员变量有默认初始值, 局部变量没有默认初始值

成员方法:有方法的声明和方法体, 方法可以重载.

注意:返回值类型不能作为区分重载的标志, 成员变量的操作只能放在方法中.

UML(Unified Modeling Language Diagram):使用一个长方形描述一个类的主要构成,将长方形垂直的分为三层.

第一层:名字层,抽象类(斜体字形表示)、具体类(常规字形表示)

第二层:变量层,列出类的成员变量, 格式是“变量名:类型”

第三层:方法层,列出类的方法, 格式是“方法名:类型”

 Java复习笔记+经验总结-02 面向对象基础

 

构造方法:用于对对象中的所有成员变量进行初始化, 它的名字必须和类名完全相同, 没有返回值(不需要用 void 进行标识),类会提供默认的无参构造函数,如果类定义了一个或多个构造函数, 则不会提供无参构造函数.

对象创建: 1.声明、 2. 实例化

声明: 类名 对象名;

Apple redApple;

实例化: 对象名 = new 构造函数名([参数列表]);

  redApple = new Apple();

注意:对象创建后, 对象引用在栈内存, 对象实体在堆内存

 

对象的使用: 对象.成员变量(该变量访问权限为public)

对象.成员方法();

对象的销毁: java中不像C++中一样需要手动释放内存, java提供垃圾回收机制可以自动判断对象是否还在使用. java提供了一个名为finalize()的方法,用于在对象被垃圾回收机制销毁之前执行一些资源回收工作, 由垃圾回收机制调用,也可以重写,但是何时调用是不可预测的, 每个类只有一个finalize()方法.

注意:java程序以类为基本单位.

注意:java中的参数传递方式只有一种, 值传递.

值传递:

基本数据类型的值传递:传递的是副本, 实参值不会被改变. 实参的级别不能高于形参的级别, :不能向形参为int的传递一个float类型的值.

引用类型的值传递:传递的是实参中存放的“引用”(地址), 如果改变形参, 那实参也会相应改变.

注意:引用类型传递以为着两个变量(形参和实参)指向同一个对象的引用地址, 这两个变量操作的是同一个对象.

对象的组合关系:A中的成员变量有另外一个B类对象

public class A{

private int name;

private B b;

}

对象的依赖关系: A类中的某个方法参数用B类声明或返回类型是B类对象.

public class A{

public void fun(B b){

}

}

实例方法和类方法: 方法类型前不使用static修饰的是实例方法, 使用static修饰的是类方法, 也叫静态方法.

注意:实例方法用对象调用, 类方法直接通过类名调用.

 

this关键字: this表示引用当前对象, 可以出现在实例方法和构造方法中,当成员变量和局部变量名字相同时, 必须使用this关键字区别.

: class A{

public void setName(String name){

this.name = name;

}

        }

java中包的概念: 一种区别类的命名空间机制

包的用途: 将功能相近的类放在同一个包中, 在一定程度上, 包可以避免命名冲突, protected 的访问权限是以包为单位的.

注意:在实际编程中, 尽量保证一个类只做一件事情

访问权限修饰符: private protected public default

 Java复习笔记+经验总结-02 面向对象基础

注意:如果不写访问权限修饰符号的类被称为友好(friendly)类或默认(default).

1. 一般private 表示在类内部可以调用,类外部不可见.

2. 声明属性尽可能使用私有, 这样才体现出封装性.

3. 一个源文件可以存在多个类, 但只能有一个public, 其他类只能是默认修饰.

4. 不建议使用非共有类, 即所有类都是公有的, 并且一个源文件一个类.