首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

面向对象学习札记

2012-11-16 
面向对象学习笔记理解编程语言的发展:机器语言、汇编语言、高级语言、面向对象语言面向对象面向过程是在复用

面向对象学习笔记
理解
编程语言的发展:
机器语言、汇编语言、高级语言、面向对象语言

面向对象面向过程是在复用的层次上有区别:
?面向过程:在方法的层次上复用。
?面向对象:是隐藏了方法和这个类的细节,直接在整个对象层次上的复用。
合适的方法应该出现在合适的类里面

ppt内容
对象(object)和类(class)的概念
?对象用计算机语言对问题域中事务的描述,对象通过“属性(attribute)”和“方法(method)”来分别对象事务所具有的静态属性和动态属性。
?类是用于描述同一类型的对象的一个抽象概念,类中定义了这一对象所应具有的静态属性和动态属性。
?类可以看成一类对象的模板,对象可以看成类的一个具体实例(instance)。
理解
类是对象的抽象,对象是类的实现。

ppt内容
关系:
关联关系、继承关系、聚合关系{松耦合:聚集、紧耦合:组合}、实现关系{接口(interface)}
多态

理解
面向对象
1.对于一个问题有哪些类,哪些对象
2.这些类,这些对象应该具有哪些属性和方法
3.类和类之间具备怎样的关系

成员变量和局部变量
局部变量先声明后赋值再使用,如果没有赋值会报错。
成员变量没有赋值不会报错。因为默认初始化
byte 0 short 0 int 0 long 0L char ‘\u0000’(unicode 0) float 0.0F double 0.0D boolean false 所有的引用类型都是null

引用
Java语言中除了基本类型之外的变量类型都称之为引用类型。
引用类型占两块内存。栈内存指向堆内存。局部变量都会在栈内存中,方法执行结束后栈中内存清空,对象存放在堆内存还在。
new出来的装在堆内存。所以的引用类型都是指针。

PPT内容
1.必须使用new关键字创建对象
2.同一类的每一个对象有不同的对象存储空间。
3.同一类的每一个对象共享该类的方法。
构造方法(构造函数)
new 一个对象的时候,调用的方法。
和类同名没有返回值

命名规则
1.类名首字母大写
2.变量名和方法名的首字母小写
3.运用驼峰表示

方法重载(overload)
PPT内容
方法的重载是指一个类中可以定义有相同名字、返回值,但参数不同的多个方法。调用时,会根据不同的参数表选择对应的方法。
构造方法也可以重载。

非静态方法是针对每个对象进行调用。(XX.方法)

this关键字
?在类的方法定义中使用的this关键字代表该方法的对象的引用
?当必须指出当前使用方法的对象是谁的时要使用this
?有时使用this可以处理方法中成员变量和参数重名的情况
?this可以看做是一个变量,它的值是当前对象的引用

static关键字
?在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static的成员变量只有一份。
?用static声明的方法为静态方法,在调用方法时,不会将对象的引用传递给它,所以在static方法中不可以访问非static成员。
静态方法不再是针对某个对象调用,所以不能访问非静态成员
?可以通过对象引用或类名(不需要实例化)访问静态成员。

静态变量存放在数据区。static 存放在data seq
任何对象都可以访问静态对象。没有对象也可以访问类名加”.”也可以访问。
static就相当于一类事物的全局变量。

package com.xx 公司域名倒过来
java.lang 里面的类不需要引入,直接使用
继承和权限控制
?在java中使用extends关键字实现继承机制
?通过继承子类自动拥有父类所有的成员(成员变量和方法);
?一个子类只能有一个基类,一个基类可以派生出多个子类。
修饰符内部类同一个包子类任何地方
privateYes
defaultYesYes
protectedYesYesYes
publicYesYesYesYes

重写(overwrite/override)
ppt内容
在子类中可以根据需要把从父类继承来的方法进行重写。
重写的方法必须和被重写的方法具有相同的名称、相同的参数列表和相同的返回值类型。
重写方法不能够使用比被重写方法更严格的访问权限。

super关键字
在java中使用super来引用基类的成分

继承中的构造方法
子类的构造方法必须调用父类的构造方法
子类可以在自己的构造方法中使用super(argument_list)调用其基类的构造方法
使用this(argument_list)调用本类的另外的构造方法。
如果子类的构造方法中没有显式地调用基类构造方法,则系统默认调用基类无参数构造方法。
如果基类构造方法中既没有显式地调用基类构造方法,而基类中又没有无参数构造方法,则编译出错。

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

动态绑定/多态
动态绑定是指在执行期间(而非编译期间)判断说引用对象的实际类型,根据其实际类型调用其相应的方法。
1.要有继承
2.要有重新
3.父类引用指向子类对象

抽象类(abstract关键字)
用abstract关键字修饰一个类的时候,这个类叫做抽象类;用abstract关键字修饰一个方法的时候,这个方法叫做抽象方法。
含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。
抽象类不能被实例化。
抽象方法只需要声明,不需要实现。

final关键字
final的变量的值不能够被改变
final的方法不能被重写
final类不能被继承。

interface接口
接口(interface)是抽象方法和常量值定义的集合
从本质是将,接口是一种特殊的抽象类,这种抽象类只包含常量和方法的定义,而没有变量和方法的实现。
接口特征
?多个无关的类可以实现同一个接口
?一个类可以实现多个无关的接口
?与继承关系相似,接口与实现类直接存在多态性
?接口中的声明属性默认值为public static final,也只能是public static final。
?接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public的。
?接口可以继承其他接口,并添加新的属性和方法。

理解:
接口可以多继承,static修饰。只有常量,没有变量。

热点排行