java的三个特性
Java语言的三大特点是封装、继承和多态性
首先,简单说明那三个特性的定义。
软件包:
在面向对象编程方法中,封装(英文: Encapsulation )是指部分封装、隐藏抽象函数接口实现细节的方法。
封装可以认为是防止该类的代码和数据随机访问由外部类定义的代码的保护屏障。
隐藏对象的属性和实现详细信息,仅公开界面,并控制读取和修改程序中属性的访问级别。 将抽象得到的数据和动作(或功能)组合起来,形成有机的整体。 也就是说,将数据和操作数据的源代码有机结合起来,形成“类”。 其中,数据和函数都是类的成员。 封装的目的是为了增强安全性,简化编程,用户不需要知道具体的实现细节,只是通过外部接口、特定的访问权限使用类的成员。 封装的基本要求是:将所有属性私有化,并为每个属性提供getter和setter方法。 如果有参数构造函数,则必须编写无参数构造函数。 虽然在某些情况下可能会重写toString方法,但这不是必需的,因为开发时经常测试已经创建的类。
继承:
继承是java面向对象编程技术的基础,因为可以创建分层类。
继承是指子类继承父类的特性和行为,从而导致子类的对象(实例)具有父类的实例域和方法,或者子类从父类继承方法,从而导致子类继承父类
通过继承进行代码复用。 Java中的所有类都是通过直接或间接继承java.lang.Object类获得的。 被继承的类称为子类,被继承的类称为父类。 子类不能继承父类权限为private的成员变量和方法。 子类可以重写父类的方法,并命名与父类同名的成员变量。 但是,Java不支持多个继承,即一个类从多个超类派生的能力。 在开发中尽量减少继承关系是为了降低程序的耦合度。
多态性:
多态性是同一行为具有多种不同表现形式或形态的能力。
多态性可分为设计时多态性和运行时多态性,例如过载也称为设计时多态性。 另一方面,JAVA运行时系统根据调用方法的实例类型决定调用哪个方法称为运行时多态性。 总之,面向对象设计的典型特征是继承、封装、多态性,这些特征也是面向对象能够兴盛到如此程度的关键。
以上是java三大特性的基本含义。 大家理解就可以了,所以绝对不要背诵哦。 接下来,让我们用一个例子完美地说明java的三个特性。
用java制作简单的计算机import java.io.*;
类操作限制
{
private double numberA=0;
private double numberB=0;
私有双结果=0;
publicdoublesetnumbera (双精度)。
{
return numberA=i;
}
公共双精度getnumber a (
{
return numberA;
}
publicdoublesetnumberb(doublej )。
{
return numberB=j;
}
public double getNumberB ()
{
返回编号;
}
公共设置结果(双z ) )。
{
return result=z;
}
publicdoublegetresult(doublea,double b ) )。
{
返回结果;
}
}
//封装要运算的两个数字和运算结果。
classoperationaextendsoperationattridute
{
publicdoublegetresult(doublea,double b ) )。
{
双结果=0;
result=a b;
返回结果;
}
}
//加法类:继承OperationAttridute类并覆盖其getResult方法
classoperationsextendsoperationattridute
{
publicdoublegetresult(doublea,double b ) )。
{
双结果=0;
result=a-b;
返回结果;
}
}
//减法类:继承OperationAttridute类并覆盖其getResult方法
classoperationmextendsoperationattridute
{
publicdoublegetresult(doublea,double b ) )。
{
双结果=0;
result=a*b;
返回结果;
}
}
//乘法系:继承OperationAttridute系,涵盖其getResult方法
classoperationdextendsoperationattridute
{
publicdoublegetresult(doublea,double b ) )。
{
双结果=0;
if(b==0) )。
{
Throw new RuntimeException;
}
result=a/b;
返回结果;
}
}
//除法类:继承OperationAttridute类并覆盖其getResult方法,除法判断被除数并抛出异常
类操作
{
这是publicstaticobjectexpression _ r (charr )
{
operationattriduteoa=newoperationattridute (;
我是交换机
{
case ' ':
oa=new OperationA (;
黑;
case '-':
oa=new OperationS (;
黑;
case '*':
oa=new OperationM (;
黑;
case '/':
oa=new OperationD (;
黑;
}
返回OA;
}
}
//运算系:根据被传递的参数,调用运算方法
类会计
{
publicstaticvoidmain (string [ ] args ) throws Exception
{
char r='* ';
operationattriduteoa=(operationattridute ) operationdo.expression_r(r );
doublea=OA.setnumBera(9;
doubleb=OA.setnumberb(2);
system.out.println (OA.get result (a,b ) );
}
}
//主程序
这样,只需输入运算符号,通过多态性返回子类实现了计算机的结果。