关于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. C# 如何使用预处理指令?

    #define Debug #define Release #undef Release #if Debug using System; #endif 注意:#define 必须在文档最前面

  2. POJ - 2387 最短路

    思路:用dijkstra算法,是无向图. AC代码: #include <cstdio> #include <cmath> #include <cctype> #i ...

  3. HDU - 1846 Brave Game 巴什博弈

    思路:直接判断n是不是m+1的倍数,若是先手则输,否则赢. AC代码 #include <cstdio> #include <cmath> #include <algor ...

  4. mysql 导出每张表中的100条数据..............

    windows下配好MYSQL 环境变量,cmd 然后: mysqldump -uroot -p123 [数据库名]--where "1=1 limit 100" --lock-a ...

  5. python 下载新的模块

    首先, 进入到python的安装目录 在安装目录下有一个Scripts文件夹. 然后里面有一个pip.exe 文件, 这个文件就是执行安装包的. 执行: pip.exe install django ...

  6. JVM笔记4-对象的创建

    1.对象的创建过程: 1.new 类名 2.根据new的参数在常量池中定位一个类的符号的引用. 3.如果没找到这个符号的引用,说明类还没有被加载.则进行类的加载,解析和初始化 4.虚拟机为对象分配内存 ...

  7. react按需加载(getComponent优美写法),并指定输出模块名称解决缓存(getComponent与chunkFilename)

    react配合webpack进行按需加载的方法很简单,Route的component改为getComponent,组件用require.ensure的方式获取,并在webpack中配置chunkFil ...

  8. Linux中select poll和epoll的区别

    在Linux Socket服务器短编程时,为了处理大量客户的连接请求,需要使用非阻塞I/O和复用,select.poll和epoll是Linux API提供的I/O复用方式,自从Linux 2.6中加 ...

  9. 命令行下编译Wordcount

    1. 编辑WordCount.java文件,在下载的hadoop安装包里有WordCount的例子 http://mirrors.hust.edu.cn/apache/hadoop/common/ha ...

  10. hive:join操作

    hive的多表连接,都会转换成多个MR job,每一个MR job在hive中均称为Join阶段.按照join程序最后一个表应该尽量是大表,因为join前一阶段生成的数据会存在于Reducer 的bu ...