Java(二) 三大特性和优点

Java的三大特性是什么

    三大特性分别是 封装、继承、多态。
    注:有人说抽象(abstract)也是特性,但在某些书中不支持这说法。

封装:由类(class)来体现的,我们可以把现实生活中的一类实体定义成类,并且该类包括属性(Type)和方法(Method)。例如人类就是人这个类,里面可以定义皮肤属性和地区属性,还可以定义行为(在java中方法可以解释行为,也可以叫函数),这就是封装特性。
例如

class{
    String color;//属性:肤色

    void seelp(){//方法(行为)

    }
}

继承:继承简单点说就想现实生活中的父子关系,父亲的一些方法,儿子是可以直接拿来使用,也可以复写父亲的方法然后变成自己的方法。这就是继承特性。
例如

    class Father{
        void say(){
        }
    }
    //子类继承父类
    class Son extends Father{

    }
    @Test
    public void test(){
        Son son=new Son();
        son.say();
    }
    //子类重写父类方法
    class Son1 extends Father{
        void say(){

        }
    }
    @Test
    public void test1(){
        Son1 son=new Son1();
        son.say();
    }

多态:多态就是通过父类对象引用不同的子类对象而表现出不同的行为

class A ...{  
         public String show(D obj)...{  
                return ("A and D");  
         }   
         public String show(A obj)...{  
                return ("A and A");  
         }   
}   
class B extends A...{  
         public String show(B obj)...{  
                return ("B and B");  
         }  
         public String show(A obj)...{  
                return ("B and A");  
         }   
}  
class C extends B...{}   
class D extends B...{}

Java的优点有哪些

1.简单性

这个简单在我看来可谓是简单不简单了,怎么说了,如何拿它和C,汇编去对比,真的是简单了许多,我们看Java里面没有头文件,指针运算(甚至指针语法,但我认为 Java的引用就跟指针差不多),结构,联合,操作符重载,虚基类等。然而设计者没有试图清除C++中所有不适当的特性,例如Switch,不过java的if语句真的很强大,我们可以用if ,else 来作真假的所有判断。另外java的类库很强大,我们可以用java去做编程的大部分事情,这让编程变得更加简单;

2.面向对象

一直再说面向对象,包括我学习java的第一章课,老师都对我讲什么是面向对象,当时听的云里雾里的,只记得万物皆对象。面向对象简单的讲是一种程序设计技术。它讲重点放在数据(即对象)和对象的接口上。用人吃饭来举个例子,面向对象会这样表达,人(吃)饭,在这里人和饭是对象,而吃我们可以理解成为动作。人就是主语而饭是宾语,吃就是所谓的谓语。而我们的面向过程关注的是什么啦,关注的是吃这个过程。表达出来的第一个意思就是吃,然后由吃来引导吃?吃什么啦,答曰吃饭。谁吃饭啦,人吃饭。偶原来面向过程是这样的啊。

在过去的40年里,面向对象已经证明了自身的价值,一种现代的程序设计语言不实用面向 对象技术简直让人难以置信。的确Java的面向对象特性与C++起鼓相当。Java与C++的主要不同点在于多继承,在java中取而代之的是简单的接口继承,以及java的元素模型.

3.网络技能

Java有一个扩展的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java的应用程序能够通过URL打开和访问网络上的对象,其便捷程序就好像访问本地文件一样。

人们已经看到Java的网络能力强大且易于使用。任何曾经试图使用其他语言进行网络编程的人都会惊呼Java竟然把类似于打开socket连接这类繁重的任务都变得如此简单。另外远程方法调用机制使得分布式对象之间可以进行通信。

4.健壮性

Java的设计目标之一在于使得Java编写的程序具有多方面的可靠性。Java投入了大量的精力进行早期的问题检测,后期动态(运行时)检测,并消除了又出错倾向的状态……Java和C++最大的不同在于java采用的指针模型可以消除重写内存和顺坏数据的可能性。这个特性非常有用,我们再程序编写的时候往往就会自动提示很多其他语言仅在运行时刻才能够检测出来的错误。至于第二点,就更加有用了,对于曾经话费几个小时来坚持由于指针bug而引起的内存冲突的人来说,一定非常喜欢java这一特性。其原理在于Java的内存模型,他把引用和实际值放在两块不同的内存中,这个以后再细说。

5.安全性

Java适用于网络/分布式环境。为了达到这个目标,在安全方面投入了很大精力。使用Java可以构建防病毒,防篡改的系统。

6.体系结构中立

编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有java运行时系统就可以再许多处理器上运行。这并不是什么新的思路,在40多年前就有这种技术了,当然这也执行效率很慢很多,然而虚拟机有一个策略就是把使用最繁琐的字节码序列翻译成机器码,这一过程叫做即时编译。

7.可移植性

与C不同,java规范中没有依赖具体实现的地方。基本数据类型的大小以及有关算法都做了明确的说明。

例如java的基本类型永远都是固定的,不论在什么环境下,而在C中,Int有可能是16位,也有可能是32位。只有把数据类型的大小和有关算法固定了,我们再任何应用系统上基本上都不需要重写代码。

8.解释性

Java的解释器可以再任何移植了解释器的机器上执行Java字节码,所以我说Java是一种解释性语言,他在语法上面要更容易让人理解与编写,由于链接是一个增量式且轻量级的过程。所以开发过程也变得更加快捷,更加具有探索性。

9.高性能

尽管对解释后的字节码性能已经比较满意,但在有些场合下还需要更加高效的性能。字节码尅(在运行时刻)快速地翻译成运行这个应用程序的特定CPU的机器码。在早期Java性能一直是一块诟病,但是现在即时编译的速度已经很快了,人们又对JVM进行了很多优化,导致现在Java的性能也比较快了。

10.多线程

多线程可以带来更好的交互响应和实时行为。同时也大大提高了我们的执行效率,在这里多线程这把双刃剑就不多说了,Java为我们实现多线程提供了很多支持,使我们能更加容易的去编写多线程程序。在底层,主流平台实现多线程的机制各不相同。

11.动态性

从各种角度来看,Java要比C更加具有动态性,它能够适应不断发展的环境,库中可以自由添加新方法和实例变量而对客户端却没有任何影响。这里主要还是因为Java使用的是接口继承。不去破坏我们原来的方法,从而实现新的功能。当我们需要对某些代码添加到正在运行的程序中时,动态性是一个非常重要的特性,因为我们可以获取到运行时的类信息,这对于 JavaGUI构建器,只能调试器,可插拔组件以及对象数据库来说非常有用。

以上信息

特性摘于云默的面向对象的四大特性
多态信息摘于Jack204多态性的理解
有点摘于漫长学习路java的11个优点

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值