JAVA语言面向对象程序设计包括计算机编程语言、Java语言的基础知识、面向对象程序设计原理和Java语言实现、Java特殊关键字的使用、异常处理、管理与I/O流、图形用户界面开发、多线程编程技术、小应用程序和多媒体技术、JAVA网络编程、数据结构和*框架、Java中的数据库编程等内容。
允许将子类的引用赋给父类的对象,但是子类中不继承自父类的成员将不再可见。 例:Bus bus = new Bus();Car car = bus;但是car实例不可以引用bus中非继承的域,如载人数。
this和superthis引用当前类的变量或方法,super引用当前对象的直接父类的变量或方法。
多态: 同一个名字可以有多种实现状态,在同一个类内部,可以拥有同名但参数列表不同的方法,子类也可以有同父类同名的变量和方法。
覆盖(override):当子类继承了父类的同名无参函数时,子类新写的方法覆盖父类的方法(返回类型必须相同)。
重载(overload):继承了父类的同名有参函数,并且方法参数不同时称为重载,使该方法具有自己的特*。
重写(overwrite):在当前类的同名方法,同一个类中可以有多个具有相同名字的方法,由传递给它们的不同个数和类型的参数来决定使用哪种方法。 覆盖和重载针对父类,重写针对子类。
抽象类定义: 抽象类可以有自己的数据成员,也可以有非抽象的成员方法,同时也可以有抽象方法,抽象方法只有函数定义部分,没有函数体。 子类继承抽象类时必须实现所有的抽象方法。
接口: Java只支持单一继承,为了实现多重继承,设计了接口。一个类只能有一个直接父类,但是可以实现多个接口。 接口中的方法可以有参数列表和返回类型,但没有任何方法体。 接口中可以包含字段,但会被隐式声明为static和final。 接口中的字段只能被存储在该接口的静态存储区域内,而不属于该接口。 接口中的方法为public。 扩展一个接口来生成新的接口使用关键字extends,实现一个接口使用关键字implements。 Java接口的方法只能是抽象的和公开的,Java接口比Java抽象类更抽象化。
接口与抽象类的区别:
抽象类可以提供实现方法,接口不能提供。如果向抽象类中添加一个新方法,则它的所有子类一下子就得到了这个方法,但是接口,所有实现这个接口的类必须都再实现这个方法才行。
抽象类只能继承一个,而可以实现多个接口。 “默认适配模式”:Java接口在最上面,然后紧跟着抽象类。
接口可以被嵌套,既可以被某个类嵌套,也可以被接口嵌套。
静态类: 即定义了静态方法、静态变量、静态代码块的类。静态类不能被实例化,类的成员都是静态的。意味着告诉编译器,这个方法不需要创建一个此类的对象即可使用。非静态类一般需要实例化后才能*作。静态类在运行时加载到内存中,所以不用进行初始化,也没有实例,因此在类的内部也不能用this。
第2篇:java面向对象编程的方法
Java类库的用法,总结优化Java编程的各种宝贵经验,深入阐述Java虚拟机执行Java程序的原理。以下是小编为大家搜索整理的java面向对象编程的方法,希望能给大家带来帮助!更多精彩内容请持续关注我们应届毕业生考试网!
1:允许将子类的引用付给父类的对象,但子类中的那些不是从父类继承来的成员将不再可见。
例:Busbus=newBus();
Carcar=bus;但是car实例不可以引用bus中的非继承域,如p载人数。
2:this和super
this引用当前类的变量或方法,super引用当前对象的直接父类的变量或方法
3:多态:
同一个名字可以有多种实现状态,同一个类内部,可以拥有同名的,参数列表不同的方法,子类也可以有同父类同名的变量和方法。
1)覆盖(override),当子类继承了父类的同名无参函数时,子类新写的方法覆盖父类的方法,(返回类型必须相同)
2)重载(overload)继承了父类的同名有参函数,并且方法参数不同时称为重载,使该方法具有自己的特*。
3)重写(overwrite)当前类的同名方法,同一个类中可以有多个具有相同名字的方法,由传递给他们的不同个数和类型的参数来决定使用哪种方法。
覆盖和重载针对父类,重写针对子类。
4:抽象类定义:
抽象类可以有自己的数据成员,也可以又非abstract的成员方法,也可以有抽象方法,抽象方法只有函数定义部分,没有函数体。
子类继承抽象类时必须实现所有的abstract方法。
5:接口
java只支持单一继承,为了实现多重继承,设计了接口。一个类只可以有一个直接父类,但是可以实现多个接口。
接口中的方法可以有参数列表和返回类型,但是没有任何方法体。
接口中可以包含字段,但是会被隐士地声明为static和final
接口中的字段只能被存储在该接口的静态存储区域内,而不属于该接口。
接口中的方法为public
扩展一个接口来生成新的接口使用关键字extends,实现一个接口使用implements。
java接口的方法只能是抽象的和公开的,java接口比java抽象类更抽象化。
6:接口与抽象类的区别
1)抽象类可以提供实现方法,接口不能提供。如果向抽象类中添加一个新方法,则它的所有子类一下子就得到了这个方法,但是接口,所有实现这个接口的类必须都再实现这个方法才行。
2)抽象类只能继承一个,而可以实现多个接口。
“默认适配模式”:java接口在最上面,然后紧跟着抽象类。
3)接口可以被嵌套,既可以被某个类嵌套,也可以被接口嵌套。
7:静态类:
即定义了静态方法、静态变量、静态代码块的类。静态类不能被实例化,累的成员都是静态的。意味着告诉编译器,这个方法不需要创建一个此类的对象即可使用。费静态类一般需要实例话后才能*作。静态类在运行时加载到内存中,所以不用进行初始化,也没有实例,因此在类的内部也不能用this
第3篇:Javascript 面向对象编程
很长一段时间以来(这里本人要幸灾乐祸地说),js是“一种点缀的作用,完成很有限的功能,诸如表单验证之类,其语言本身也一直被当作过程化的语言使用,很难完成复杂的功能。”。但是(这里本人要苦大仇深、痛心疾首地说),“而Ajax的出现使得复杂脚本成为必需的组成部分,这就对JavaScript程序设计提出了新的要求,很多Ajax应用开始利用JavaScript面向对象的*质进行开发,使逻辑更加清晰。事实上,JavaScript提供了完善的机制来实现面向对象的开发思想。”。
这里关于对象就废话这么多了。我们都知道面向对象编程的三个主要特点是:封装、继承和多态。下面就围绕着这三个特点,记录一些学习心得。
好的,先从封装*开始介绍,众所周知,对象是封装的最基本单位。封装防止了程序相互依赖*而带来的变动影响。面向对象的封装比传统语言的封装更为清晰、更为有力。Codeischeap.来看简单的代码:
//定义函数的方式定义类
functionclass1(){
//类成员的定义及构造函数
//这里class1既是一个函数也是一个类。作为函数,它可以理解为类的构造函数,负责初始化的工作。
}
//使用new*作符获得一个类的实例
varobj=newclass1();
functiontest(){
alert(typeof(obj));
}
上面的代码定义了一个类class1,这就是js中简单的封装,下面我们看js如何定义“静态类”,
functionclass1(){//构造函数
}
//静态属*
class1.staticProperty="test";
//静态方法
class1.staticMethod=function(){
alert(class1.staticProperty);
}
functiontest(){
//调用静态方法
class1.staticMethod();
alert(typeof(class1));
}
接着看“抽象类”:
//定义extend方法
Object.extend=function(destination,source){
for(propertyinsource){
destination[property]=source[property];
}
returndestination;
}
Object.prototype.extend=function(object){
returnObject.extend.apply(this,[this,object]);
}
//定义一个抽象基类base,无构造函数
functionbase(){}
base.prototype={
initialize:function(){
this.oninit();//调用了一个虚方法
}
}
//定义class1
functionclass1(){
//构造函数
}
//让class1继承于base并实现其中的oninit方法
class1.prototype=(newbase()).extend({
oninit:function(){//实现抽象基类中的oninit虚方法
//oninit函数的实现
}
});
我们看到,上面“让class1继承于base并实现其中的oninit方法时”,使用了“继承”的概念,请留意。再来看一下执行的效果:
functiontest(){
varobj=newclass1();
obj.oninit=function(){alert("test");}
obj.oninit();
}