继承:什么是一种什么,就是继承关系
聚合:什么是什么的一部分,不唯一,例如球队队长
组合:什么是什么的必须的构成部分,唯一的,别的不能用,例如,人的头
面向对象设计思想:1.考虑问题中有哪些类哪些对象
2.考虑这些对象和类中各有有哪些属性和方法
3. 再考虑类和类之间的关系
1。对象的创建和使用:
1:必须使用new关键字创建对象。
2:使用对象引用.成员变量或来引用对象的成员变量。
3:使用对象引用.方法(参数列表)来调用对象的方法。
4;同一类的每个对象有不同的成员变量存储空间。
5:同一类的每个对象恭喜该类的方法
2 引用类型: Dog d = new Dog();声明一个Dog类型的引用变量,使用new语句创建了一个Dog,可以通过d来访问它
d.furcolor d.catchmouse()
3:构造方法:要和类名一样,没有返回值,和new一起使用来构造新的对象
4:内存分析
5。方法重载OverLoad,形参不一样(形参类型不同或数量不同),返回值必须相同
例如void max(int a, int b)和void max(float a, float b)
构造方法也可以构成重载
6.添加一个方法有3个问题。1是方法名,2是方法参数,3是返回值
7。this关键字:有时候处理重新的情况,使用该方法的对象的引用
class Cat {
String = name;
Cat(String name) {
this.name = name;
}
}
8.static:用static声明的成员变量为该类的公用变量
用static声明的方法为静态方法,不可以访问非static的成员
可以通过对象引用或类名访问静态成员
9:package包:为了解决类名重名的问题,取名约定是公司域名倒过来
1。必须写在java源文件的第一条语句
2。编译出来的.class文件必须位于正确的目录文件下面。(该类的源码可能产生影响,删除或转移其他目录)
3。如果想在另外一个类中,用包里的类,必须把名字写全或用improt引入
访问同一个包中的类不需要引入
4。 import 引入包里的类 引入* 或具体类名,例如imoprt.com.hqr.java001.*;
5。 必须class文件的最上层包的父目录位于classpath下(右键我的电脑属性。环境变量)
6 。执行一个类也必须写全包名
jar - cvf 名字.jar *.* 打包
7.继承:用extends关键字来实现
8。方法的重写(overwrite):1,必须和被重写方法具有相同的方法名称,参数列表和返回类型。
2,重写方法不能使用比被重写方法更严格的访问权限
9.super 引用基类成分
10:继承中的构造方法
子类的构造的过程中必须调用其基类的构造方法。
子类可以在自己的构造方法中使用super(参数清单)调用基类的构造方法
使用this(参数)调用本类的另外的构造方法
如果使用super,必须写在子类构造方法的第一行
11:object中的头toString()方法,(TestToString)(针对对象)
public String toString()
当进行String与其他类型数据的连接操作时,例如System.out.println("info"+person.toString());将自动调用该对象
12:public boolean equals(Object obj)方法
equlas方法定义为:x.equals(y)当x和y是同一个对象的应用时返回ture否则返回false
13:对象转型(casting):可以使用instanceof 类名 来判断该引用型变量所指向的对象是否属于该类或该类的子类
例如System.out.pritnln(a instanceof Animal);//true
14:多态:存在的必要条件
1。要有继承
2。要有重写
3。父类应用指向子类对象
15.1抽象类abstract:需要定义不需要实现的方法
2抽象方法是用来重写的。public abstract void enjoy();
3当一个类中含有抽象方法的时候,这个类必须是抽象类
4抽象类不能实例化
16。final变量的值不能改变。
final的方法不能被重写
final的类不能被继承
17。接口(interface):本质上是特殊的抽象类
只包含常量的方法和定义,而没有变量和方法的实现
接口特性: 接口可以多重实现;就是一个类可以接多个接口
接口中声明的属性默认为public static final 的,也只能是
接口的方法只能是抽象的public abstract的
接口可以继承其他的接口,并添加新的属性和抽象方法
多个无关的类可以实现同一个接口
一个类可以实现多个无关的接口
与继承关系类似,接口与实现类之间存在多态性
用implements实现
抽象类和接口的区别
1,抽象类里可以有构造方法,而接口内不能有构造方法。
2,抽象类中可以有普通成员变量,而接口中不能有普通成员变量。
3,抽象类中可以包含非抽象的普通方法,而接口中所有的方法必须是抽象的,不能有非抽象的普通方法。
4,抽象类中的抽象方法的访问类型可以是public ,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5,抽象类中可以包含静态方法,接口内不能包含静态方法。
6,抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static类型,并且默认为public static类型。
7,一个类可以实现多个接口,但只能继承一个抽象类。