上篇文章说了jdk的安装和java环境的配置,这篇文章主要说下java的特性。

首相说下,编程语言分为面向过程和面向对象,而java就是一种面向对象的编程语言。

什么是面向过程编程呢?就是一流程为单位,注重最后的结果。比如小明要从郑州去北京,他第一步就是要先买火车票,然后去火车站乘车,坐火车到北京。这就是面向过程编程,必须每一步都做到,才会有最后的结果。

这样一来面向过程编程的缺点就很明显了:1、不利于程序的维护   2、功能之间有很强的关联性,就是说你每一次改动一步,可能就会涉及到好几步的更改。

那么什么又是面向对象变成呢?就是把一个事物看做一个整体,从事物的属性和功能两方面进行描述

面向对象编程的特点就是:

1、面向对象的编程思想更贴近人的正常思维模式

2、面向对象的编程来源于生活服务于生活

3、面向对象的编程思想中肯定会用到面向过程的思想

4、面向对象的特征:抽象、封装、继承、多态

这就要来了解下什么是对象了。

任何一个具体的事物都是一个对象,在《java编程思想》中讲到:万事万物皆对象

任何一个对象都是唯一的,即使两个相近或者相似的事物都是两个不同的对象,就像世界上找不到两片相同的树叶一样,任何一个对象一旦创建就会唯一的存在。而且对象也不一定是一个切实存在的实物,任何一项法规、政策、虚拟物品等都是一个对象。

抽象      

就是对同一个事的共有的属性(特征)和方法(功能/行为)进行抽取、归纳、总结。如:汽车都有轮子、发动机等这些就是汽车的属性,汽车能跑、能载人载物等这些就是汽车的功能。这样就可以把汽车的这些功能与属性抽取出来写在一个类中,供汽车这一类事物使用。

封装  

在抽象中将属性与方法写在一个类中就是封装,而封装就是为了保证抽象出来的特征和方法的安全性,封装就是包装的过程,注意封装不是绝对的封装,如果其他程序要获取已经封装好的数据,就要通过程序指定的接口或方法才能获取。

继承

        特点:继承要有一定的层次结构,还要具备一定的可传递性

     子类继承父类的属性和方法,但是私有属性和构造方法除外

     子类除了拥有从父类继承过来的属性和方法外,子类还可以拥有属于自己的属性和方法

     在java中只支持单一继承(也就说一个子类只能有一个父类,但一个父类可以有多个子类)

     判断两个类的继承关系是否成立,可以通过“is-a”(是一个)开判断

子类不能继承父类的构造方法:父类的构造方法创建的是父类的对象,以为继承要有一定的层次结构,而且要具备一定的额可传递性,如果子类继成父类的构造方法就违反了这一条,所以子类不能继承父类的构造方法。

如何实现继承

在java中通过extends关键字来实现继承,语法

【访问修饰符】  class   子类    extends  父类{   }

继承的作用

提高代码的重用性

一个源文件中可以包含多个类,但只能有一个类带public,而且带public访问修饰符的类的类名要和源文件的文件名相同,main方法也要写在带public的类中。

当创建子类对象时,那么一定会先执行父类的构造方法创建父类对象,然后在调用子类的构造方法创建子类的对象。而且在创建子类的对象时无论是调用有参数还是无参数的构造方法,JVM都会默认的代用父类的无参数的构造方法创建父类的对象。

多态

多态就是指同一种事物在不同的情况下的多种表现形式

多态的表现形式有:方法重写,方法重载,接口和接口的继承,类和类的继承

方法的重载:在同一个类中,有多个方法名相同,但参数列表不同的方法,这就是方法的重载,参数列表的不同包括:参数个数,类型,顺序的不同。普通方法和构造方法都可重载,方法重载会根据传递的参数来决定调用哪个方法,返回值不同,其他都相同的情况是构不成方法的重载

方法的重写:发生在子类继承父类的关系中,父类中的方法被子类继承,方法名,返回值类型,参数完全一样,但是方法体不一样那么说明父类中的该方法被子类重写了。

目的:当父类中方法,无法满足子类的需求时,那么子类可以对父类的方法进行扩展

注意:方法重写子类的访问修饰符的范围不能缩小

Java基础之java的四大特性的更多相关文章

  1. java基础(二)-----java的三大特性之继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  2. Java基础技术-Java其他主题【面试】

    Java基础技术-Java其他主题[面试] Java基础技术IO与队列 Java BIO.NIO.AIO Java 中 BIO.NIO.AIO 的区别是什么? 含义不同: BIO(Blocking I ...

  3. 黑马程序员:Java基础总结----java注解

    黑马程序员:Java基础总结 java注解   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! java注解 lang包中的基本注解 @SuppressWarnings ...

  4. Java基础:Java的四种引用

    在Java基础:java虚拟机(JVM)中,我们提到了Java的四种引用.包括:强引用,软引用,弱引用,虚引用.这篇博客将详细的讲解一下这四种引用. 1. 强引用 2. 软引用 3. 弱引用 4. 虚 ...

  5. java基础-学java util类库总结

    JAVA基础 Util包介绍 学Java基础的工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.本章介绍Java的实用工具类库java.util包.在这个包中,Java ...

  6. Java基础-使用JAVA代码剖析MD5算法实现过程

    Java基础-使用JAVA代码剖析MD5算法实现过程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  7. Java基础和JDK5.0新特性

    Java基础 JDK5.0新特性 PS: JDK:Java Development KitsJRE: Java Runtime EvironmentJRE = JVM + ClassLibary JV ...

  8. Java基础20:Java8新特性终极指南

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  9. java基础(一)-----java的三大特性之封装

    面向对象编程有三大特性:封装.继承.多态.本文将介绍java的三大特性之封装 封装 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成 ...

  10. java基础知识——Java的定义,特点和技术平台

    (作者声明:对于Java编程语言,很多人只知道怎么用,却对其了解甚少.我也是其中一员.所以菜鸟的我,去查询了教科书以及大神的总结,主要参考了<Java核心技术>这本神作.现在分享给大家!) ...

随机推荐

  1. kali系统越来越大解决

    Kali Linux系统提供的apt-get方式,可以很好的安装软件,对系统进行更新.但是每次执行都会下载大量的软件包.这些软件包被安装后,并不会被自动删掉,会持续占用磁盘空间.解决这个问题有两个办法 ...

  2. Spring Boot Cookbook 中文笔记

    Spring Boot Cookbook 一.Spring Boot 入门 Spring Boot的自动配置.Command-line Runner RESTful by Spring Boot wi ...

  3. python 之 比较哪个数据大小

    #定义一个字典info={}#定义比较的人数n=int(input("请输入你要比较的人数"))#循环while(n): #输入a,b 两个数据 ,分别代表学号 和分数 # 把输入 ...

  4. 调用jdbc已经写成的方法----jdbc工具类抽取方式一

    package web09; /*获取连接和释放资源的方法 */ import java.sql.Connection; import java.sql.DriverManager; import j ...

  5. jersey annotations

    参照: http://blog.csdn.net/a19881029/article/details/43056429 官网文档翻译版 @Path 用来为资源类或方法定义URI,当然除了静态URI也支 ...

  6. 函数直接写在html页面的<script>里可以调用,但是单独放在js文件里不能调用

    1.函数直接写在页面相当于是你本页调用,所以理所应当可以调用 2.js单独文件不能调用是因为你没有引用js文件,如果引用了的话,也是可以调用的. 引用方式,你可以直接拖拽(我一般都是拖拽,因为路径准确 ...

  7. dotnet publish

    发布Release版本:dotnet publish --configuration Release 发布Debug版本:dotnet publish --configuration Debug

  8. (转)Linux下部署tomcat及tomcat war包应用程序

    原文:http://www.cnblogs.com/smallfa/news/2017/07/17/7193620.html 1, 通过winscp将tomcat包(6和7版本都是一样的安装方法)和j ...

  9. VS2015 MSVCRTD.lib(_chandler4gs_.obj) : error LNK2019: unresolved external symbol __except_handler4_common referenced in function __except_handler4

    今天在VS2015中用编译好的QT5静态库打包软件,配置好QT的静态环境后, 发现报MSVCRTD.lib(_chandler4gs_.obj) : error LNK2019: unresolved ...

  10. happy in java之io流简介

    闲来没事,重温马士兵老师的java基础... 流  水流的流  流氓的流,,流 英文叫做stream,溪流 流的分类: 流是用来读写数据的. 流就像水流一样,File类封装的是文件的名字,它是内存里头 ...