首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java面向对象札记

2012-12-21 
java面向对象笔记面向对象总结?面向对象考虑的问题?1、不考虑过程、先考虑哪些对象?2、类和对象有哪些属性和

java面向对象笔记

面向对象总结

?

面向对象考虑的问题

?

1、不考虑过程、先考虑哪些对象

?

2、类和对象有哪些属性和方法

?

3、类之间的关系

?

?

Dog d = new Dog()

对象d的引用放在栈内存中

对象d的属性和方法堆内存(动态)

?

成员变量放在内存中的数据区

?

局部变量占用一块内存(即栈内存),方法调用完后,局部变量消失

?

new对象占用两块内存(即栈内存和堆内存)

?

成员变量有默认值,作用范围是整个类;局部变量没有默认值,作用范围是整个方法

?

方法就是一块静态代码,只有在执行的时候,才内存里分配空间;非静态方法是针对每个对象进行调用的

?

?

《方法的重载》

方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。

(与方法的访问控制修饰符无关)

(返回类型要一致,其它条件成立,返回类型不一致时构成重名,此时编译不通过)

调用时,会根据不同的参数表选择相应的方法。

?

《this关键字》

当必须指出当前使用方法的对象是谁时要使用this;

有时使用this可以处理方法中成员变量和参数重名的情况;

this可以看作是一个变量,它的值是当前对象的引用。

?

《static关键字》(静态变量存放在内存的数据区)

·在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,

对于该类的所有对象来说,static成员变量只有一份。

·用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。

·可以通过对象引用或类名(不需要实例化)访问静态成员。

?

《package和import语句》

·为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引入包(package)机制,提供类的多重类命名空间。

《J2SDK中主要的包介绍》

·java.lang--包含一些java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。

·java.awt--包含了构成抽象窗口工具集的多个类。

·java.applet--包含applet运行所需的一些类。

·java.net--包含执行与网络相关的操作的类。

·java.io--包含能提供多种输入/输出功能的类。

·java.util--包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。

?

《访问控制》

修饰符类内部同一个包子类任何地方

privateyes

defaultyesyes

protectedyesyesyes

publicyesyesyesyes

(对于class的权限修饰符只可以用public和default,public类可以再任意地方被访问,default类只可以被同一个包内部的类访问)

?

《继承》

java中使用extends关键字实现类的继承机制;通过继承,子类自动拥有了基类(superclass)的所有成员(成员变量和方法);

java只支持单继承,不允许多继承:一个子类只能有一个基类,一个基类可以派生出多个子类。

?

《方法的重写》

在子类中可以根据需要对从基类中继承来的方法进行重写;

重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型;

重写方法不能使用比被重写方法更严格的访问权限。

?

《继承中的构造方法》

子类的构造的过程中必须调用其基类的构造方法。

子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法。

·使用this(argument_list)调用本类的另外的构造方法;

·如果调用super,必须写在子类构造方法的第一行。

如果子类的构造方法中没有显式地调用基类构造方法,则系统默认调用基类无参数的构造方法。

如果子类构造方法中既没有显式调用基类构造方法,而基类中又没有无参数的构造方法,则编译出错。

?

《Object类中的equals》

提供定义对象是否“相等”的逻辑;

x.equals(y)当x和y是同一对象时返回true否则返回false;

即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。?

“==”比较的是对象的地址;也就是说Object中equals和“==”是一样的。

?

《对象转型》

·一个基类的引用类型变量可以“指向”其子类的对象;

·一个基类的引用不可以访问其子类对象新增加的成员(属性和方法);

·可以使用引用变量instanceof类名来判断该引用型变量所“指向”的对象是否属于该类或该类的子类;

·子类的对象可以当作基类的对象来使用称作向上转型(upcasting),反之称为向下转型(downcasting);

·多态的条件:1、要有继承;2、要用重写;3、父类引用指向子类对象。

热点排行