Java – 面向对象

 

标识符

关键字

Java基础数据类型(4类多种,类型(大小):字节字符型:byte(一)、char(二),整型:short(二)、int(四)、long(捌),浮点型:float(四)、double(8),逻辑型:boolean(一))

运算符

表达式和讲话

分支

循环

方法

变量的功用域

递归调用

 

 

哪些用命令提醒符打jar包?

一、张开命令提醒符,切换来您想要打成jar包目录的上一级

2、输入jar -cvf xxx.jar *.*,回车就可以 //格式解释:jar -cvf
+想打的jar包的名字 +想打客车内容(*.*意味着当前目录下的兼具剧情)

 

 

怎么引进jar包? 

间接把这几个jar文件的门道设置进ClassPath上边就可以了。

 

 

 

包(package): 

*
有一个约定俗成的命名情势,把你公司的域名倒过来写;如:com.bjsxt.java140。

* 未有点名 package 的类叫裸体类

* 编写翻译出来的 class
文件必须放在正确的目录(与钦赐的package一致)下边,不然非同一目录下的其它的类访问不着。

* JDK一.四现在该类的源码可能会产生震慑,删除或调换来其它的目录上边,不要让源码位于
ClassPath 上面。

* class 文件的最上层包的父目录必须放在 ClassPath 下。

* 试行3个类须要写全包名。

* JDK 里面,在用的时候,就唯一个 java.lang
不必要引入,其余的,你要用它当中的类,必须引进。

 

 

变量: 

分成:基础数据类型变量 和 引用数据类型变量

基础数据类型变量:在内部存款和储蓄器中占一块内存,壹经定义并赋值,名字和值都保存在那块内部存款和储蓄器中

引用数据类型变量:在内部存款和储蓄器中占两块内部存款和储蓄器,一经定义并赋值,个中1块内部存款和储蓄器保存真正的值(相当于new出来的具体的有些实例),另1块内存保存的是它定义的名字和它实在的值所在的内部存款和储蓄器地址(也正是指标的引用)

从此如若一谈起引用,脑子里将要想到:一小块内部存款和储蓄器指向一大块内部存款和储蓄器

 

 

 

 

变量的成效域(成员变量和局地变量): 

* 注:Java 中不得定义 static 的局地变量,也就说未有静态局地变量。

*
成员变量和局地变量的要害不同:基础数据类型的分子变量假使您不给它开始化,Java会自行给它初叶化,而基础数据类型的1部分变量必须对它实行开始化技艺应用;而引用数据类型的变量(无论成员变量照旧1些变量)都亟待实例化,不然都为
null
,你不实例化也能选拔它,只不过使用时系统会抛出空指针非常(NullPointException)。

* static 的成员变量是属于全部类,被该类 new
出来的持有的目的共享;你不需求 new 出指标就能够一向能够用类名访问;而非
static 的成员变量是急需 new 出目的来本事张开访问。

* static 的积极分子变量的生命周期取决于该类,非 static
的成员变量的生命周期取决于该类 new
出来的目的,而部分变量的生命周期取决于它定义所在的那对花括号。

 

 

 

常量(用 final 修饰的变量): 

*
常量也属于变量的层面,它是2个奇怪的变量,是四个不可能变动值的变量,故叫常量。

 

 

 

 

内存分区:

1、code segment 代码区 装代码

二、data segment 数据区 装静态变量和字符串常量

3、stack 栈 装局地变量

4、heap 堆 装new出来的事物

 

 

 

面向对象的规划观念:

当您思量3个标题标时候不应有思量第一步笔者要干嘛、第三步作者要干嘛,要思考如何啊?

一、首先要思量,作为这一个题目来讲,在那个难题域里头应该有何个类哪些个指标,那是首先点;

二、然后再思量这么些个类那一个目的每壹类别每1种对象应当负有哪些个个性和章程,那是第贰点;

三、再思量类和类之间全数了怎么的关系。

 

 

 

类和对象的定义:

类:是兼备共同特点的1类东西的画饼充饥

指标:是那一类东西中切实的某些实例

壹、对象用Computer语言对难点域中东西的讲述,对象通过“属性(attribute)”和“方法(method)”来分别对应事物所持有的静态属性和动态属性。

二、类是用于描述同一类型的目的的三个华而不实的概念,类中定义了那一类对象所应具备的静态和动态属性。

三、类能够用作一类对象的模板,对象足以视作该类的贰个现实实例。

 

 

 

类(对象)之间的关系:

* 关联

* 继承

* 聚合

  ** 聚集

  ** 组合

* 多态

* 实现

 

 

此起彼伏关系(1般和特殊): 

一旦能说通:“XX是一种XX”。

如:足球运动员是一种球类运动员、篮球选手是1种球类运动员、排球运动员是1种球类运动员、球类选手是1种运动员、游泳运动员是一种运动员、射击运动员是1种运动员

 

 

会晤关系(全体和部分): 

即便能说通:“XX是XX的一局地”。

如:队长是球队的一有的、队员是球队的一有的、胳膊是人的1局地、脑袋是人的一片段、身体是人的一片段。

聚合分的细一点还足以分为:聚集、组合

集合:松聚合 队长,叁个队长即能够是篮球队的队长也足以是足球队的队长

重组:紧聚合 脑袋,没听过一个头颅即属于您也属于他呢

 

 

 

贯彻关系(父类和子类): 

 

 

 

 

多态(也叫动态绑定,也叫迟绑定): 

*
指的是在实行时期(而非编写翻译时期)判别所引用对象的其实类型,依据其实际的门类调用其对应的办法。

* 多态的留存有八个必要条件:

  ** 壹、要有持续

  ** 2、要有重写

  ** 三、父类引用数据类型变量指向子类对象

  注:那多少个条件一旦满足,当您调基类里被重写的主意的时候,实际个中 new
的是哪些子类对象,就调用子类对象里的秘籍。

 

 

 

访问调节: 

Java权限修饰符 public protected private
置于类的积极分子定义前,用来界定其余对象对该类对象成员的访问权限。

private:类内部

default:类内部、同1个包

protected:类内部、同多少个包、子类

public:类内部、同一个包、子类、任什么地点方

* 对于 class 的权能修饰只好够用 public 和 default,public
类能够在自由地方被访问,default 类只好够被同四个包里面包车型地铁类访问。

 

 

 

 

办法的重载与重写:

重载是同八个类下边,同样的艺术名、不相同的参数列表(个数或项目),与重临值类型无关。

重写是子类重新定义父类已部分艺术,必须与父类方法具备同样的回来值类型、方法名、参数列表。

*
重写的艺术无法动用比被重写方法更严格的拜访权限,也正是说若是您重写的父类的形式的拜会权限是
protected ,那么你子类重写的方法的走访权限就不可能是 private 或
default,只可以是 protected 或 public。

 

 

 

 

继续中的构造方法: 

* 子类组织的长河中必须调用其基类的构造方法。

* 子类能够在大团结的构造方法中动用 super(argument_list)
调用基类的构造方法。

  ** 使用 this(argument_list) 调用本类此外的构造方法

  ** 假如调用
super,必须写在子类构造方法的第3行,说白了就是要先构造出父亲才会有子嗣,故置第3行。

* 假如子类的构造方法中从未呈现地调用基类的构造方法(也就说没写
super),则Java会默许调用基类无参的构造方法。

*
假设子类构造方法中既未有出示地调用基类的构造方法,而基类中又不曾无参的构造方法,则编写翻译出错。

 

 

 

Object 类之 equals 方法: 

Object类的equals方法的落到实处代码如下:

boolean equals(Object o){

    return this==o;

}

* Object 类中定义有:public boolean equals(Object obj)
方法,该格局提供定义对象是否“相等”的逻辑。

* Object 的 equals 方法定义为:x.equals(y) 当 x 和 y
是同2个对象的引用时回来 true,不然重回 false。

* J二SDK 提供的有的类,如 String、Date 等,重写了 Object 类的 equals
方法,调用那么些类的 equals 方法,x.equals(y),当 x 和 y
所引用的对象是相同类对象且品质的剧情万分时(并不一定是同一对象),重回true,否则再次来到 false。

* 能够依照须要在用户自定义类型中重写 equals 方法,那时你也相应将
hashCode 方法一比量齐观写。

 

 

 

对象转型(casting): 

* 一个父类的引用类型变量能够“指向”其子类的目的。

*
一个父类的引用类型变量不得以访问其子类对象新添的质量(包蕴静态属性和动态属性)。

* 能够应用 引用类型变量 instanceof 类名
来判别该引用类型变量所“指向”的靶子是还是不是属于此类或该类的子类。

  ** instanceof:是某类或其子类的实例之1。

*
子类的靶子足以当作父类的对象来行使,称作向上转型(upcasting),反之称为向下转型(downcasting)。

可扩充性(extensibility):

*
多少个杰出的平整便是,在追加新东西的还要尽量的决不去修改原来早就做好的东西,这么些才叫可扩展性好。

 

 

 

抽象类(abstract): 

* 用 abstract 修饰的类叫抽象类,用 abstract 修饰的点子叫抽象方法。

* 抽象类不能够被实例化。

* 抽象方法只需注明,而不需兑现。

*
含有抽象方法的类必须被声称为抽象类,抽象类必须被接续(说的是,若您定义了三个抽象类,该类不被此外类承接的话就从不意义,因为抽象类无法实例化,所以您不能利用该抽象类中的静态及动态属性),承袭抽象类的子类必须重写该抽象父类中具备的肤浅方法

* 补充表达:abstract class 中得以有非抽象方法,而 interface 不得以。

 

 

 

final 关键字: 

* final 的变量的值不能够被转移,且务必起先化。

  ** final 的积极分子变量

  ** final 的有的变量(形参)

* final 的方式不能够被重写

* final 的类不能够被接续

 

 

接口(interface): 

* 接口是空洞方法和常量值的概念的集聚。

*
从本质上讲,接口是壹种奇特的抽象类,那种抽象类中只含有常量、方法的定义,而尚未变量,未有章程的落实。

* 四个毫无干系的类能够完成同1个接口。

* 一个类能够落成两个非亲非故的接口。

* 与持续关系看似,接口与落到实处类之间存在多态性。

* 补充表达:interface 只好 extends interface ,无法 extends class 恐怕extends abstract class ,interface 本人不能 implements 任何 interface

 

 

 

总结:

* 内部存款和储蓄器分析贯穿始终

* 对象和类的定义

* 类(对象)之间的关系

* 面向对象设计观念

* class

* new

  ** 引用的概念

  ** 构造方法的概念

* 方法重载(overload)

  ** 构造方法重载

* this

* static

* package & import

* private default protected public(default不是重大字)

* extends

* overwrite

* final

* Object

  ** toString

  ** equals

* upcasting downcasting

* polymophysm / ( dynamic / late ) binding

* abstract class

* interface

  ** implements

 

相关文章