首页范文正文

关于jv面向对象编程

扫码手机浏览

大家好!今天让小编来大家介绍下关于关于jv面向对象编程的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。...

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();

}

 

0
0
收藏0