第三章面向总结

第三章总结:
1.分析内存贯穿始终,要学会分析内存!!
2.对象和类的概念:
3.类(对象)之间的关系:
4.面向对象设计思想
5.class
6.new
(1)引用的概念
(2)构造方法的概念
7.方法重载
(1)构造方法重载

重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
最常用的地方就是构造器的重载。

重载规则:
1.被重载的方法必须改变参数列表(参数个数或类型不一样);
2.被重载的方法可以改变返回类型;
3.被重载的方法可以改变访问修饰符;
4.被重载的方法可以声明新的或更广的检查异常;
方法能够在同一个类中或者在一个子类中被重载。
无法以返回值类型作为重载函数的区分标准。

8.this
this 指向自己的引用

9.static
10.package&import
package import总结
1.如果想将一个类放入包中,在这个类文件第一句话写package
2.必须保证该类的class文件位于正确目录下
(1)该类的源码可能会产生影响
(2)删除或转移到另外的目录下
3.另外的类想访问的话
(1)写全名
(2)引入
a. *
b.具体类名
(3)访问位于同一个包中的类不需要引入
4.必须class文件的最上层包的父目录位于classpath下
5.执行一个类需要写包全名

11.private default protected public
访问控制:
private 私有的
default 默认
protected 受保护的
public 公共的

12.extends
extends 只能继承一个类
//类的继承格式:
class 父类 {
}
class 子类 extends 父类 {
}
//java 不支持多继承,但支持多重继承。

13.overwrite
方法的重写:
1.在子类中可以根据需要对从基类中继承来的方法进行重写。
2.重写方法必须和重写方法具有相同方法名称、参数列表和返回类型。
3.重写方法不能使用比被重写方法更严格的访问权限。
(访问权限:private<default<protected<public)
4.声明为final的方法不能被重写。
5.声明为static的方法不能被重写,但是能够被再次声明。

注意点:
方法重写的时候要把被重写的方法名复制粘贴为重写的方法名,以防方法名错误。

14.final
final 最终类,该类不能继承的,或用于修饰方法,该方法不能被子类重写;

Final关键字
1.final的变量的值不能够被改变;
(1)final的成员变量
(2)final的局部变量(形参)
2.final的方法不能够被重写;
3.final的类不能够被继承。

15.Object
(1)toString
toString方法
1.Object类中定义有public String toString()方法,其返回值是String类型,描述当前对象的有关信息;
2.在进行String与其他类型数据的连接操作时(如:System.out.println(“info”+person)),将自动调用该对象的toString()方法;
3.可以根据需要在用户自定义类型中重写toString()方法.
(2)equals
equals方法
Object类中定义有:
1.public boolean equals(Object obj)方法
提供定义对象是否“相等”的逻辑。
2.Object的equals方法定义为:x.equals(y)当x和y是同一个对象的应用时返回ture否则返回false.
3.J2SDK提供的一些类,如String,Date等,重写了Object的equals方法,用这些类的equals方法,x.equals(y),当x和y所引用的对象是同一个类对象且属性内用相等时(并不一定是相同对象),返回ture否则返回false.
4.可以根据需要在用户自定义类型中重写equals方法。

16.upcasting downcasting
对象转型(casting)
1.一个基类的引用类型变量可以“指向”其子类的对象。
2.一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。
3.可以使用引用变量instanceof类名来判断该引用型变量所“指向”的对象是否属于该类或该类的子类。
4.子类的对象可以当作基类的对象来使用称作向上转型(upcasting),反之称为向下转型(downcasting)。

17.polymophysm/dynamic binding/late
18.abstract class
抽象类
public abstract void test();
1.用abstrct关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法;
2.含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写(如果不重写也可以把该方法重定义为抽象类);
3.抽象类不能被实例化;
4.抽象方法只需声明,而不需实现。

19.interface
(1)implements
接口
1.多个无关的类可以实现同一个接口;
2.一个类可以实现多个无关的接口;
3.与继承关系类似,接口与现实类之间存在多态性;
4.定义Java类的语法格式:
class[extends]
[implements[,]*]{}
5.接口(interface)时抽象方法和常量值的定义的集合;
6.从本质上讲,接口时一种特殊的抽象类,这种类中只包含常量和方法的定义,而没有变量和方法的实现;
7.接口定义举例:

public interface Runner{
	public static final int id = 1;//定义为public static final是为了修正C++中多继承的时候容易出现问题的地方
	public void start();
	public void run();
	public void stop();
}

接口特性
1.接口可以多重实现;
2.接口中声明的属性默认为 public static final 的;也只能是 public static final 的;
3.接口中只能定义抽象方法,而且这些方法默认为 public 的、也这能是 public 的;
4.接口可以继承其它的接口,并添加新的属性和抽象方法。

猜你喜欢

转载自blog.csdn.net/Zhou2016127224/article/details/82890446
今日推荐