首页 > 编程知识 正文

面向对象程序设计心得体会,java程序设计答案

时间:2023-05-04 15:53:55 阅读:51381 作者:940

2017-10-09 17:23:52

在面向对象技术中,把客观世界中的一个东西作为一个对象来考虑。 例如,如果有彩色的茶,他就是一个对象。 每个对象都有自己的属性和行为。 有色茶的属性根据需要有名字、性别、身高等,他的行为有开车、读书、跑步等。 从编程的角度看,事物的属性可以用变量来描述,行为可以用方法来反映。

一、面向对象设计的核心技术

面向对象编程的核心技术主要是封装、继承和多态性。

套装软体

类是包的基本单元。 封装可以隐藏类实现的详细信息,也可以避免对类中属性的直接操作。 不需要知道如何实现此接口,就可以通过类的公共接口访问类中的变量。 只要此方法的名称和参数不变,重新定义类中的变量或更改方法的代码不会影响对类中变量的访问。 例如,如果在计算机上安装了声卡,则封装了实现声卡功能的继承电路,因此不需要知道声卡的内部结构和功能是如何实现的。 只要知道声卡应该安装在电脑主板的哪里,扬声器等其他设备,以及光驱是如何与声卡连接的就可以了。

继承人

继承是对类功能的重用和扩展。 继承某个类会产生新的子类。 子类可以具有从一个类继承的功能,也可以通过定义自己的变量和方法来创建新功能。

多态性

多态性是指方法名字相同,但实现不同。 也就是说,“同一接口、多种方法”。 有三种计算圆、矩形、三角形面积的方法,他们的名字都可以叫area。

二、班级结构

Java是一种完整的面向对象的编程语言。 他的所有属性类型和方法都封装在类中,Java继承了一点c,但放弃了模糊、复杂和容易出错的特性。 Java实现的面向对象的特性降低了程序的复杂性,实现了代码的重用性,提高了执行效率。

类的声明格式

“修饰符”类名class[extends超类名”“][implements接口名称”

{

班级主体

}

修饰符包含两种类型的权限:默认值或公共权限。 如果一个源文件中有多个类,则只有一个类的权限必须是公共的,而其他类的权限必须是缺省的。 公共类的名称必须与文件同名,并且main函数也必须包含在该类中。 Java的公共权限意味着可以访问所有类,而默认权限意味着只能访问同一包中的类。

final:final限定的类是最终类,无法继承。

abstract :抽象类,无法实例化

成员变量

[修饰符] [静态] [ final ] [ transient ]变量类型变量名称;

修饰符:默认值、公共、受保护、私有

静态:静态变量

final :常数

事务:临时变量

成员方法

[修饰符]返回类型方法名称(参数表) [throws ]

{

方法论;

}

其中修饰符包含访问权限,有四种类型:默认值、公共、受保护和私有。

静态:静态方法

abstract :抽象方法(没有方法体的方法)。

final :最终方法(子类不能继承的方法) ) )。

throws :抛出异常

访问权限说明

公共:可以访问所有类

protected :允许访问不同包的子类

默认值:可以访问同一包

private :同一类可以访问

三.对象的结构和初始化以及对象的销毁

构建方法

构造方法没有返回值,并且构造方法的名称必须与此类匹配。

示例: date(intm,int n ) {.}

创建对象时,将自动调用相应的生成方法。

销毁对象

的生命周期是指创建、使用和销毁对象的过程。 对象销毁是指在对象使用完毕后释放对象占用的资源。

Java会自动确定对象是否正在使用,自动销毁未使用的对象,并回收对象正在使用的资源。 在此模式下,不知道对象被销毁的具体时间。

还可以以编程方式定义finalize ()方法,以便在对象被销毁之前执行。 该方法的基本格式如下。

[修饰符]void finalize

java提供了finalize ()方法,当垃圾收集器尝试释放内存时,它首先调用finalize ) )。

(1) .对象不一定会被回收。

)2)垃圾回收不是析构函数。

)3) .垃圾收集只与内存有关。

)4) .垃圾收集和finalize ) )都不可靠。 除非JVM即将耗尽内存,否则不会将时间浪费在垃圾回收上。

四.静态成员

班里有特别的成员。 他不属于某个单独的对象,而是属于整个类。 此外,在Java中,静态不能用于限定局部变量。 静态成员函数只能访问静态成员变量。

五.班级继承

例如

果要扩展原有的程序的功能,可以对原来的类进行修改或增加一个新类,但是这样就不符合开闭原则了。同时,也会影响原来的类的相关代码,或者造成代码的重复。

一种好的方法是通过继承来重用已有的代码,同时增加新的代码来进行功能的扩展。

继承是面向对象设计的重要方法,被继承的类称为超类,从超类派生的新类称为子类。子类中包含两个部分,一个是从超类中继承下来的变量和方法,一个是自己新增加的方法和变量。

Java中只支持单重继承,不支持多重继承,所以一个类只能有一个超类。

声明子类

[修饰符]class 子类名extends 超类名

{...}

子类的对象也是超类的对象,超类的对象不一定是子类的对象。

成员变量的继承规则:子类只继承超类中非private的部分;

隐藏原则(hiding):子类的成员变量和超类的成员变量同名的时候,超类的成员变量被隐藏。

成员方法的继承规则:子类只继承超类中非private的部分;

覆盖原则(Override):子类的成员方法和超类的成员方法同名的时候,超类的成员方法被子类的成员方法覆盖。

子类的构造方法

在调用子类的构造方法的时候,需要先调用超类的构造方法,子类的构造方法的参数的前面几个,是给超类的构造方法使用的。在子类的构造方法体中,使用super进行显示的调用超类的构造方法,并将此语句放在构造方法体的最前面。如果超类中有默认的构造方法,那么在子类的构造方法中,可以不显示的调用超类的构造方法。

null,this,super

null:表示空对象,即没有创建类的任何实例。

this:代指当前的对象,是对象的引用。访问本类的成员,this.,this.,调用本类的构造方法this(参数表);

super:超类的引用,可以使用super来引用被子类屏蔽的超类的成员,super.,super.,调用超类的构造方法super(参数表);

六、最终类和抽象类

最终类和最终方法

被final修饰的类和方法称为最终类和最终方法,这种类无法被继承,这种方法不会在子类中被覆盖,也就是说子类中不能有和此方法同名的方法。

final class Last{...};

public final void printsuper(参数表){...};

抽象类和抽象方法

抽象方法是必须在子类被覆盖的方法,在声明的时候,用关键字abstract将方法说明为抽象方法,并不设方法体。

含有抽象方法的类为抽象类,也需要用abstract修饰,他是一种不能实例化的类。

abstract class {...abstract 方法}

proected abstract void write();

注意:对于成员方法,不能同时使用static和abstract说明,因为static不用实例化就可以调用,而abstract必须进行实例化实现。

对于类,不能同时使用final和abstract进行修饰,因为这两种方式明显是相反的。

七、类的多态性

多态是指同一名称,多种实现。多态的实现主要通过重载(overloading)和覆盖(override)来完成。

重载

方法的名字相同,但参数不同(注意仅返回值不同不能算作重载),称为重载。在执行的时候,根据参数的不同来决定执行哪个方法。

覆盖

子类和超类中有同名的方法,且参数也相同,子类中的方法将覆盖超类的方法。

* 前期绑定和后期绑定的概念

对于方法的重载,在程序编译的时候,根据调用语句中给出的参数,就可以决定在程序中执行时调用的版本,这种称为编译时的绑定,也叫做前期绑定;

对于方法的覆盖,要在程序执行时,才能决定调用同名方法的版本,这称为运行时的绑定,也叫做后期绑定。

八、接口

在Java中,由于不支持多重继承,所以引入了接口的概念。一个类可以有一个超类和多个接口。Java中的面向对象编程也被戏称为面向接口编程。足见接口的概念的重要性。

接口的声明

接口是一个特殊的类,他是由静态常量和抽象方法组成的,并且不包含变量和方法的实现。

[修饰符] interface 接口名{...}

其中修饰符可以是public或者默认访问控制。

接口中的变量默认是static final ,且必须被赋初值。如果接口是public,那么接口中的成员都隐含是public访问权限。

接口的实现

一个接口可以被一个类或者多个类实现。当一个类实现了一个接口,它必须实现这个接口中的所有方法,这些方法都要被说明成public。使用关键词implements实现接口。

class 类名 implements 接口1,接口2...

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。