Java 是完全面相对象的语言,这样的好处就是能把现实世界中的事物都抽象成对象.这也符合人类的思维习惯.有利于对复杂程序的编写.同时也说明Java中的任何成员都不能离开对象单独存在.

 

面向对象的核心机制就是封装,继承,多态.

:类与对象

类是描述一个事物的抽象概念,它描述了事物的静态和动态属性.

对象就是类的一个具体实例.

:类的五种关系

关联,(has a) 继承(is a) 聚合(is one of) 组合(is a part of) 依赖(use a )

:类的内存分析

Java中除了基本数据类型以外,都是引用类型,其中对象就是通过引用对其操作的.

类是静态的概念,对象是通过new出来的,位于堆(heap).类的每个成员变量再不同的对象中有不同的值(静态除外).方法只有一份,执行时才占用内存.

:构造函数

使用new+构造函数创建对象.无构造函数的默认为:类名(){}

子类必须重写父类的构造函数.子类继承父类后默认继承父类的构造函数,即:子类存在隐含方法:super(),如果子类重写构造函数则子类也隐含调用super()。

 

子类可以在自己的构造方法中使用super(参数列表),调用基类的构造方法

使用this(参数列表)调用本类以外的构造方法,如果调用super,必须在构造方法的第一行写

无显式声明的,默认调用基类无参数构造方法.

 

:方法重载

类中可以定义方法名称相同,参数个数不同,或者参数类型不同的方法.(注意返回值不同不可以)

:static静态成员

static成员在第一次使用时初始化,对于该类的对象来说只存在一份.且存在在内存的data segment

:(package)

解决了多项目中类名冲突问题

声明包: 源文件第一句中:package pk1.pk2.pk3…  其中.代表文件目录

使用包:importpk1.pk2.pk3…

注意class文件的最上层文件位于环境变量的:classpath

JDK提供了大量的包