j2se之面向对象编程
2014-01-20 17:04
295 查看
对象和类的概念
对象用机器语言对问题域中的事物进行描述,对象通过“属性”和“方法”来分别对事物具有的静态属性和动态属性
类是用于描述同一类型的对象的一个抽象的概念类中定义了这一类对象所具有的静态和动态的属性
类可以看成一类对象的模版,对象可以看成该类的具体实例
类(对象)之间的关系:
关联关系 继承关系 (一般和特殊的关系) 聚合关系(整体和部分的关系) 实现关系
成员变量与局部变量:
成员变量可以是Java语言中任意一种数据类型(包括基本数据类型和引用数据类型)
定义成员变量时可以对其初始化也可以不对其初始化,如果不对其初始化系统会自动对其初始化(布尔类型为false,引用数据类型为null,其余类型为对应类型的"0")
成员变量的作用范围为整个类体
局部变量在定义时要对其初始化,如果不初始化则会报错
引用:Java语言中除基本数据类型之外的数据类型都称之为引用数据类型
Java中的对象是通过对引用的操作其操作的。
对象的创建和使用:
1必须使用new关键字创建对象
2使用 对象(引用).成员变量 来引用对象的成员变量
3使用 对象(引用).方法(参数列表)来调用对象的方法
4不同对象的成员变量有不同的存储空间
5同一类的每个对象共享该类的方法
构造方法:
使用new+构造方法 创建一个新的对象
构造方法是定义在Java类中用来初始化对象的函数
构造方法没有返回值与类同名
当没有指定构造方法时系统会自动添加一个形如 类名(){ }的构造方法,若指定了构造方法则不会再指定构造方法
this关键字:
在Java语言中为了指明是哪一个对象在调用这个方法,编译器会把对象的引用作为一个参数传递给方法,而在方法之中this关键字就是表示使用方法的当前对象
this关键字只能在方法内部使用,表示“调用方法的那个对象”的引用
使用this关键字可以处理成员变量与形式参数重名的现象
可以使用this关键字在构造器中调用构造器
public class Test{
Test(){
this("参数")
}
Test(String s){
}
}
为了避免重复代码可以采用this关键字来在一个构造器中调用另外一个构造器
static关键字:
为了解决:
1 只想为某特定数据分配一份存储空间,而不考虑创建了多少对象,甚至不创建对象
2 希望某个方法不与包含它的类的任何对象关联在一起,也就是说即使没有创建对象也可以调用这个方法
使用static关键字。
在类中使用static声明的成员变量为静态成员变量,它为类的公用变量,在第一次使用时被初始化对于该类的所有对象来说,static成员变量只有一份。
用static声明的方法为静态方法,调用该方法时不会将对象的引用传递给它,所以在静态方法中不能访问非静态的成员(因为在调用静态方法时对象的引用不会传递给方法而访问非静态的变量时必须使用对象的引用来访问)
可以通过对象引用或类名(不需要实例化)访问静态变量
继承:
Java中使用extends关键字实现类 的继承机制。
通过继承,子类自动拥有了基类的所有成员变量和成员方法
Java只支持单继承,不允许多继承 :一个子类只能有一个基类 一个基类可以派生多个子类
访问权限控制符:
在没有任何访问权限的时候,即默认的访问权限(包访问权限)在同一个包中的类可以互相访问
protected :类内部,同一个包,子类中能访问
public :任何地方都能访问
类(class)的权限修饰只有public和default
方法的重写:
在子类中可以根据需要对从基类中继承来的方法进行重写
重写方法必须与被重写方法具有相同的方法名称,参数列表,和返回值类型(通常需要去copy原方法的结构)
重写方法不能使用比被重写方法更严格的访问权限
super关键字:
Java中使用super来引用基类的成分
继承中的构造方法:
子类的构造过程中必须调用其基类的构造方法
子类可以在自己的构造方法中使用super(argument-list)来调用基类的构造方法
如果使用super,必须写在子类构造方法的第一行
如果子类的构造方法没有显示的调用基类的构造方法则系统默认的调用基类没有参数的构方法
如果子类中既没有显式的调用基类中的构造方法,而基类基类中又没有无参数的构造方法,则编译出错
对象转型:
一个基类的引用类型变量可以指向其子类的对象
一个基类的引用不可以访问其其子类对象新增加的成员
可以使用 引用变量 instanceof 类名 来判断该引用变量所指向的对象是否属于该类或该类的子类
动态绑定与多态:
动态绑定是指在执行期间(而非编译期间)判断所引用对象的实际类型,根据其实际的类型判断其调用的方法
抽象类:
用abstract来修饰一个类时这个类叫抽象类,用abstract修饰一个方法时这个方法叫抽象方法
含有抽象方法的类必须被定义为抽象类,抽象类必须被继承,抽象方法必须被重写
抽象类不能被实例化
抽象方法只需被声明而不需要被实现
final关键字:
final 的变量的值不能被改变
final 的成员变量
final的局部变量
final的方法不能被重写
fina的类不能被继承
接口:
接口是抽象方法和常量值定义的集合,从本质上讲接口是一种特殊的抽象类,这种抽象类只包含常量和方法的定义,而没有变量和方法的实现
接口可以多重实现,
接口中声明的属性默认为 public static final的,也只能是这样的
接口中只能定义抽象方法,而这些方法默认为public的,也只能是这样的
接口可以实现其它接口并添加新的属性和方法
多个无关的类可以实现同一个接口
一个类也可以实现多个无关的接口
与继承关系类似,接口与实现类之间 存在多态性
对象用机器语言对问题域中的事物进行描述,对象通过“属性”和“方法”来分别对事物具有的静态属性和动态属性
类是用于描述同一类型的对象的一个抽象的概念类中定义了这一类对象所具有的静态和动态的属性
类可以看成一类对象的模版,对象可以看成该类的具体实例
类(对象)之间的关系:
关联关系 继承关系 (一般和特殊的关系) 聚合关系(整体和部分的关系) 实现关系
成员变量与局部变量:
成员变量可以是Java语言中任意一种数据类型(包括基本数据类型和引用数据类型)
定义成员变量时可以对其初始化也可以不对其初始化,如果不对其初始化系统会自动对其初始化(布尔类型为false,引用数据类型为null,其余类型为对应类型的"0")
成员变量的作用范围为整个类体
局部变量在定义时要对其初始化,如果不初始化则会报错
引用:Java语言中除基本数据类型之外的数据类型都称之为引用数据类型
Java中的对象是通过对引用的操作其操作的。
对象的创建和使用:
1必须使用new关键字创建对象
2使用 对象(引用).成员变量 来引用对象的成员变量
3使用 对象(引用).方法(参数列表)来调用对象的方法
4不同对象的成员变量有不同的存储空间
5同一类的每个对象共享该类的方法
构造方法:
使用new+构造方法 创建一个新的对象
构造方法是定义在Java类中用来初始化对象的函数
构造方法没有返回值与类同名
当没有指定构造方法时系统会自动添加一个形如 类名(){ }的构造方法,若指定了构造方法则不会再指定构造方法
this关键字:
在Java语言中为了指明是哪一个对象在调用这个方法,编译器会把对象的引用作为一个参数传递给方法,而在方法之中this关键字就是表示使用方法的当前对象
this关键字只能在方法内部使用,表示“调用方法的那个对象”的引用
使用this关键字可以处理成员变量与形式参数重名的现象
可以使用this关键字在构造器中调用构造器
public class Test{
Test(){
this("参数")
}
Test(String s){
}
}
为了避免重复代码可以采用this关键字来在一个构造器中调用另外一个构造器
static关键字:
为了解决:
1 只想为某特定数据分配一份存储空间,而不考虑创建了多少对象,甚至不创建对象
2 希望某个方法不与包含它的类的任何对象关联在一起,也就是说即使没有创建对象也可以调用这个方法
使用static关键字。
在类中使用static声明的成员变量为静态成员变量,它为类的公用变量,在第一次使用时被初始化对于该类的所有对象来说,static成员变量只有一份。
用static声明的方法为静态方法,调用该方法时不会将对象的引用传递给它,所以在静态方法中不能访问非静态的成员(因为在调用静态方法时对象的引用不会传递给方法而访问非静态的变量时必须使用对象的引用来访问)
可以通过对象引用或类名(不需要实例化)访问静态变量
继承:
Java中使用extends关键字实现类 的继承机制。
通过继承,子类自动拥有了基类的所有成员变量和成员方法
Java只支持单继承,不允许多继承 :一个子类只能有一个基类 一个基类可以派生多个子类
访问权限控制符:
在没有任何访问权限的时候,即默认的访问权限(包访问权限)在同一个包中的类可以互相访问
protected :类内部,同一个包,子类中能访问
public :任何地方都能访问
类(class)的权限修饰只有public和default
方法的重写:
在子类中可以根据需要对从基类中继承来的方法进行重写
重写方法必须与被重写方法具有相同的方法名称,参数列表,和返回值类型(通常需要去copy原方法的结构)
重写方法不能使用比被重写方法更严格的访问权限
super关键字:
Java中使用super来引用基类的成分
继承中的构造方法:
子类的构造过程中必须调用其基类的构造方法
子类可以在自己的构造方法中使用super(argument-list)来调用基类的构造方法
如果使用super,必须写在子类构造方法的第一行
如果子类的构造方法没有显示的调用基类的构造方法则系统默认的调用基类没有参数的构方法
如果子类中既没有显式的调用基类中的构造方法,而基类基类中又没有无参数的构造方法,则编译出错
对象转型:
一个基类的引用类型变量可以指向其子类的对象
一个基类的引用不可以访问其其子类对象新增加的成员
可以使用 引用变量 instanceof 类名 来判断该引用变量所指向的对象是否属于该类或该类的子类
动态绑定与多态:
动态绑定是指在执行期间(而非编译期间)判断所引用对象的实际类型,根据其实际的类型判断其调用的方法
抽象类:
用abstract来修饰一个类时这个类叫抽象类,用abstract修饰一个方法时这个方法叫抽象方法
含有抽象方法的类必须被定义为抽象类,抽象类必须被继承,抽象方法必须被重写
抽象类不能被实例化
抽象方法只需被声明而不需要被实现
final关键字:
final 的变量的值不能被改变
final 的成员变量
final的局部变量
final的方法不能被重写
fina的类不能被继承
接口:
接口是抽象方法和常量值定义的集合,从本质上讲接口是一种特殊的抽象类,这种抽象类只包含常量和方法的定义,而没有变量和方法的实现
接口可以多重实现,
接口中声明的属性默认为 public static final的,也只能是这样的
接口中只能定义抽象方法,而这些方法默认为public的,也只能是这样的
接口可以实现其它接口并添加新的属性和方法
多个无关的类可以实现同一个接口
一个类也可以实现多个无关的接口
与继承关系类似,接口与实现类之间 存在多态性
相关文章推荐
- Java初学(四)——J2SE之面向对象编程3(继承)
- Java初学(五)——J2SE之面向对象编程4(多态、抽象类)
- J2SE-4 面向对象编程之三大特征
- J2SE-5 面向对象编程之关键字
- J2SE面向对象编程(灰常重要)
- Java初学(二)——J2SE之面向对象编程1(类和对象)
- Java初学(三)——J2SE之面向对象编程2(方法、包)
- Java初学(七)——J2SE之面向对象编程6(数组)
- J2SE-3 面向对象编程之Java类及类的成员
- J2SE之面向对象编程
- 【PHP5权威指南】读书心得二——高级面向对象编程和设计模式
- 面向对象编程六大原则
- C的面向对象编程
- 面向对象编程系列五:继承体系中的拷贝构造函数、赋值构造函数和析构函数
- J2SE知识点摘记(四)
- J2SE知识点摘记(十五)
- JavaScript面向对象编程
- java中J2EE J2SE J2ME 的区别
- 云风:我所偏爱的C语言面向对象编程范式
- Javascript面向对象编程