关于Java的基础知识,实践证明学习OO,最终领悟“父类控制流程,子类实现具体的业务逻辑”的OO思想,需要的不是智商而是基础,也就是说,基础越好越快领悟,所以请每位S1学习Java的学员请牢记以下Java领域的基础知识,最后祝各位学员在开发项目前可以领悟OO的真谛,老师也会竭尽全力助你们打通这道通向Java的极速大门。

  1、 OO三大特性:继承、封装、多态(主要用于搭建程序框架,以此来提高代码的重用性与解藕业务逻辑)。

  2、 Java中的首字母大写与命名规范:在Java中只有两个地方会用到大写的字母做为命名的第一个字母,一个是类,别一个是静态变量。如:类Test、静态变量STATIC_NAME,如果Java使用的命名由几个英文组成,则第二个开始的每个词使用大写隔开,如:userGroupId、 studentName。切忌:在Java中命名不能用中文与拼音,以及只有类名与静态变量开头的字母是使用大与,其他的命名如方法名、变量名一律开头使用小写。

  3、包(package):Java里面的类太多了,你写,我写,大家写,我们用的类名相同,不可能放在一起,怎么办?把它们放在不同的包里面,就不会冲突了,包名为网址倒过来写,请不要使用拼音来命名包名,以及包名不要过长(包的结构就是程序框架的结构).

  4、 抽象类(abstract class): 前面加了abstract 关键字修饰的类就是抽象类,抽象类不能生成实例(不能使用New关键字)只能拿来继承,抽象类中一般包含抽象方法(作为债务产生),就是没有具体实现的方法体(只做标示),一个类中如果定义了一个抽象方法这个类也就自动变成抽象类。

  5、 抽象方法. 前面加了abstract 关键字修饰,没有方法体.也就是方法什么事也没干,像个空头支票(产生债务方法之一).

  6、 接口(interface): 接口可以理解为纯抽象的类,它的每个方法都是未实现的,它就像一个产品的说明书(产生债务方法之一)。

  7、 对象: 对象是存在的具体实体,就是按照类(汽车设计图纸),做出来的真正的看得见摸得着的汽车(注:声明一个对象就像一个变量名,如果使用了New关键字就已在内存中分配了地址).

  8、 抽象:分析问题时抽出重要的因素,忽略掉不重要的(我们每天都在抽象身边的事物,如:判断一个人是好人还是坏人)。

  9、静态变量与方法(Static):所谓的静态变量就是在定义时加一个Static的关键字,被定义为静态的方法与变量是唯一的,也就是说不管这个类有多少个实例化对象它们都共用这个类中的静态变量或方法,这也是为什么使用静态变量或方法是用类名来直接调用的原因,而非静态变量或方法等于每个实例化对象都有自己的方法与变量,这样就会互不影响。举个例子:老师相当于静态的,因为被所有学员所共有,而学员就是非静态的,因为每个学员都是独立的。

  10、 Java的四种类型:

  1.Public : 公共类型,在继承时,父类定义为公共类型的方法或变量子类可以全部继承过去,而且别的类可以随意调用公共类型的方法和变量。

  2.Private: 私用类型,在继承时,父类定义为私用类型的函数或变量子类不能继承,而且别的类不可调用私有类型的方法和变量。

  3.Protected:保护类型,在继承时,父类定义为保护类型的函数或变量子类可以全部继承过去,只有它的子类可以在不同的包调用它的方法(与Default唯一不同的地方,Default不可以),在一个包下面可以全部被调用。

  4.Default:默认类型,不加类型关键字会自动变成默认类型,继承时父类定义为默认类型的函数或变量子类会全部继承过去,但只有在一个包下面的类才能调用。

  11、 封装(Encapsulation )将重要的信息隐藏起来,或者将不需要使用者知道的很麻烦的信息全部藏起来,就像全自动洗衣机,只提供给用户一个简单的按钮,把里面具体的实现藏起来,使用户感觉操作很简单(封装有两种方法接口与抽象类也叫基类,其中接口的封装效果最好)。

  12、 继承(extends):子类可以继承父类非私有的属性和方法,就像儿子继承老爸的财产,儿子可以少奋斗二十年。

  13、 多态(Polymorphism): 多态性是指“多种形式”也叫“动态绑定”它使用不同的子类来执行不同的操作,前提是子类中相关方法名必须是一样,这样通过New一个不同的子类,通过接口或者父类就可以做到只修改一行代码而做到实现不同的功能,因为对于子类来讲方法名大家都是一样的,就好像“画图”这个方法,每个不同形状的图形都有,New一个圆进去就是画圆,New一个正方型进去就是画正方型,这是因为在这些不同形状的图中,他们都有一个一样的方法叫“画图”,不同形状的图形在自己的“画图”方法中实现自己的特色,这样使用动态绑定,只需要修改很少的代码就可以做到New什么就画什么,这些就是多态。

  14、 重载:当多个方法具有相同的名字而含有不同的参数个数或类型时,便发生重载.

  15、重写:子类继承父类,子类和父类的方法具有相同的名称和类型,但子类干的事和父类干的事不一样。就像你和你老爸都有个方法叫—工作,但工作的内容不一样,你搞软件开发,你老爸是医生.

  16、 final类:当一个类定义为final后,它将不能被其他类所继承,在定义静态变量时,一般final和static共同使用,这样这个静态变量就是不可变的。

  17、父债子还:这是Java中关于方法重写的一种硬性规定,就像欠账还钱一样。在这里有两种方法会产生债务,一个是抽象方法,另一个是接口中的方法,大家会发现这两种都有一个特性:它们定义的方法体都是空的,这就是产生了债务,所谓的偿还债务只是继承这个抽象类的子类或实现了某个接口的类,它们必须要重写这些空的方法体,否则编译器会报错。在这里只有定义为抽象类才不用还债,空的方法是一定要重写的,就像你不还钱,你的儿子也要还钱,你儿子不还,你的孙子就要还,一直到钱还清了,这个时候你的子类才不用强制重写任何方法。

  18、 不能实例化:以下情况定义的类不可实例化(不能使用New关键字)。

  1.抽象类

  2.构造函数声明为private(私有)(不能继承)

JAVA的18条BASE的更多相关文章

  1. iBatis2之SqlMap配置总结(18条)

    iBatis2之SqlMap配置总结(18条)   SqlMap的配置是iBatis中应用的核心.这部分任务占据了iBatis开发的70的工作量. 1.命名空间:   <sqlMap names ...

  2. 【转】Android编码规范建议18条

    转自:http://www.chinaz.com/design/2015/0908/443732.shtml Android编码规范建议18条 适合手机app设计师和android 工程师阅读. 1. ...

  3. 精心收集java基础106条

    Java基础 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 一个Java源文件中可以定义多个类,但最多只能定义一个public的类,并且public ...

  4. tomcat报错java.lang.IllegalArgumentException: Document base XXXXX does not exist or is not a readable directory

    启动tomcat的时候报如下错误: java.lang.IllegalArgumentException: Document base F:\java\tools\tomcat\me-webapps\ ...

  5. Tomcat的错误 之 java.lang.IllegalArgumentException: Document base * does not exist

    Tomcat的异常 之 java.lang.IllegalArgumentException: Document base 有些刚开始使用的Tomcat的朋友会出现的问题,明明已经将某个web应用从t ...

  6. java.lang.IllegalArgumentException: Document base D:\Project\workspace\space\.metadata\.plugins\org.eclipse.wst.server.core\tmp7\wtpwebapps\Blog

    java.lang.IllegalArgumentException: Document base D:\Project\workspace\space\.metadata\.plugins\org. ...

  7. java.lang.IllegalArgumentException: Document base E:\Eclipse\workspace\.metadata\.plugins\org.eclips

    1.错误描述 四月 13, 2015 5:56:55 下午 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based A ...

  8. Linux下启动tomcat报错RROR org.apache.catalina.core.StandardContext- Error starting static Resources java.lang.IllegalArgumentException: Document base /home/duiba/apache-tomcat/webapps/../webapps/manager do

    部署项目的时候,重启tomcat,死活起不来,很郁闷,网上巴拉了半天,结合自己的情况,找到了原因: 错误日志信息: 2018-12-13 13:52:26,992 [main] INFO org.ap ...

  9. 独立开发人员低成本推广APP的18条技巧

    导语:知道并不等于运行,有些最主要的推广方法往往会被忽略.这些,是自国外开发人员总结出的这18条经验. 如今市面上充满了大牌子大公司和大制作的手机游戏,常常有游戏花300万成本开发,然后再花2000万 ...

随机推荐

  1. Jenkins系列——使用checkstyle进行代码规范检查【升级版】

    1.背景 在<Jenkins系列——使用checkstyle进行代码规范检查>一文中完成了ant实现代码规范检查的例子.但存在以下缺陷: 每个作业都需要配置一个不同的checkstyle ...

  2. 用Postman做自动化测试的功能

    自动化测试应该在桌面应用有该功能,在chrome的插件不知道有没有,我也没装chrome版的Postman Postman工具介绍图 上面这张就是Postman的操作界面.一开始我就是这样做简单的数据 ...

  3. 实用技巧:如何通过IP地址进行精准定位

    在甲方工作的朋友可能会遇到这样的问题,服务器或者系统经常被扫描,通过IP地址我们只能查到某一个市级城市,如下图: 当我们想具体到街道甚至门牌号,该怎么办??? 偶然间发现百度地图有高精度IP定位API ...

  4. .net core 部署到 iis 步骤及报错解决方法

    我写了一个Asp.net core mvc项目,但是部署在iis发生了502.5的问题一直解决不了. 环境 系统:最强Win10; 工具:轻巧VS Code; 各种百度bing都没有我要的解决方案,说 ...

  5. android的Live架构

    MVC.MVP.MVVM的选择 一开始我们在这几种框架上的选择上就没花太多的心思,因为他们都只是为了实现清晰的分层逻辑,差异化的地方无非是讲UI逻辑.交互逻辑.数据绑定逻辑.业务逻辑堆放在那一层的问题 ...

  6. OkHttp拆解之调用流程图

  7. Linux 系统裁剪笔记 4 (内核配置选项及删改)

     CDROM filesystem support(CONFIG_ISO9660_FS)[Y/m/n/?]有标准光驱的系统应该选Y.Minix fs support(CONFIG_MINIX_FS)[ ...

  8. RFM模型+SOM聚类︱离群值筛选问题

        笔者寄语:一般情况下离群值不应该直接删除,应该进行筛选,然后进行专门的离群值分析.笔者在这进行一下思考,在聚类基础之上的一种离群点检验. 基于聚类的离群点检测的步骤如下:数据标准化--聚类-- ...

  9. jquery Dialog弹框插件

    function Dialog(options) { var defaults = { // 默认值. title: '', // 标题文本,若不想显示title请通过CSS设置其display为no ...

  10. C# IEnumerable 和 IEnumerator接口浅析

    温故而知新,可以为师矣,有空经常复习一下基础知识是有必要的,并且能加深理解和记忆. Foreach常用于循环访问集合,对实现IEnumerable的接口的容器进行遍历,IEnumerable和IEnu ...