Java – 面向对象

 

标识符

关键字

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

运算符

表达式和言语

分支

循环

方法

变量的作用域

递归调用

 

 

怎么样用命令提示符打jar包?

1、打开命令提示符,切换到你想只要打成jar包目录的达一级

2、输入jar -cvf xxx.jar *.*,回车即可 //格式解释:jar -cvf
+想打之jar包的名字 +想由之情节(*.*意味着当前目录下之享有情节)

 

 

什么引入jar包? 

直将这jar文件的门道设置进ClassPath下面就是足以了。

 

 

 

包(package): 

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

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

* 编译出的 class
文件要在正确的目(与指定的package一致)下面,否则非同一目录下的另外的好像看不着。

* JDK1.4
以后该类的源码可能会见出震慑,删除或撤换到另外的目下面,不要吃源码位于
ClassPath 下面。

* class 文件之太上层包之父目录必须在 ClassPath 下。

* 执行一个像样需要写全包名。

* JDK 里面,在于是的时光,就唯一个 java.lang
不欲引入,其他的,你如就此它们里面的切近,必须引入。

 

 

变量: 

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

基本功数据类型变量:在内存中占有一片内存,一经定义并赋值,名字与值都保存于这块内存中

引用数据类型变量:在内存中占据少数块内存,一经定义并赋值,其中同样块内存保存真正的价值(也就是是new出来的实际的某实例),另一样片内存保存的凡其定义的名字以及它们真的的值所在的内存地址(也就是目标的援)

以后要是同谈到引用,脑子里将想到:一微片内存指向平等充分块内存

 

 

 

 

变量的作用域(成员变量和有变量): 

* 注:Java 中不可定义 static 的组成部分变量,也就算说没有静态局部变量。

*
成员变量和有变量的最主要分:基础数据类型的分子变量如果你不吃它初始化,Java会自动为她初始化,而基础数据类型的一对变量必须对其进行初始化才会下;而引用数据类型的变量(无论成员变量还是有些变量)都急需实例化,否则都为
null
,你无实例化也克利用它们,只不过使用时系统会弃来空指针异常(NullPointException)。

* static 的分子变量是属于通类,被该类 new
出来的兼具的对象共享;你切莫欲 new 出目标就是可一直可以就此类名访问;而不
static 的成员变量是需要 new 出目标来才会开展走访。

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

 

 

 

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

*
常量也属变量的层面,它是一个异的变量,是一个非得以变更价值的变量,故吃常量。

 

 

 

 

内存分区:

1、code segment 代码区 装代码

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

3、stack 栈 装局部变量

4、heap 堆 装new出来的物

 

 

 

面向对象的计划思想:

当您考虑一个题材之下不应考虑第一步我而干嘛、第二步我而干嘛,要考虑什么吗?

1、首先要考虑,作为之题材的话,在斯问题域里头应该生出什么个近乎哪些个目标,这是第一碰;

2、然后又考虑这些个类这些目标每一样栽类似每一样种植对象应该具备何等个特性和艺术,这是次沾;

3、再考虑类和类似中有了什么的关联。

 

 

 

恍如及对象的定义:

看似:是具有共同特点的相同类东西之虚幻

靶:是就同看似东西中具体的某实例

1、对象用电脑语言对问题域中东西的讲述,对象通过“属性(attribute)”和“方法(method)”来分别对应事物所具备的静态属性与动态性。

2、类是用于描述同一型的目标的一个虚无的概念,类中定义了马上同接近对象所许具有的静态和动态性。

3、类可看成一看似对象的沙盘,对象足以看做该类的一个切实可行实例。

 

 

 

看似(对象)之间的关联:

* 关联

* 继承

* 聚合

  ** 聚集

  ** 组合

* 多态

* 实现

 

 

继往开来关系(一般和特): 

假定能够说通:“XX是一模一样种XX”。

若是:足球运动员是均等种球类运动员、篮球运动员是相同栽球类运动员、排球运动员是同种植球类运动员、球类运动员是同样种运动员、游泳选手是同一栽运动员、射击选手是一样种植运动员

 

 

聚拢关系(整体与一部分): 

而会说通:“XX是XX的等同组成部分”。

使:队长是球队的平有的、队员是球队的一模一样有、胳膊是人口的如出一辙局部、脑袋是人之均等片、身体是口之相同片段。

聚合分的明细一点尚可分为:聚集、组合

集:松聚合 队长,一个队长就可以是篮球队的队长也足以是足球队的队长

做:紧聚合 脑袋,没听罢一个头就属你吗属于他吧

 

 

 

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

 

 

 

 

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

*
指的凡在实施中(而无编译期间)判断所引述对象的实际类型,根据该实际的类型调用其对应的法子。

* 多态的存来三只必要条件:

  ** 1、要生继承

  ** 2、要起重写

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

  注:这三个规格一旦满足,当你调基类里受另行写的措施的时,实际中 new
的是哪个子类对象,就调用子类对象里的不二法门。

 

 

 

访问控制: 

Java权限修饰符 public protected private
置于类的分子定义前,用来限制其他对象对该类对象成员的拜会权限。

private:类内部

default:类中、同一个确保

protected:类中、同一个担保、子类

public:类中、同一个包、子类、任何地方

* 对于 class 的权修饰只堪就此 public 和 default,public
类可以在随意地方为访问,default 类只可以于同一个担保里的类看。

 

 

 

 

方式的重载与重写:

重载是暨一个接近下面,相同的法门名、不同之参数列表(个数或项目),与归值类型无关。

重写是子类重新定义父类已有些艺术,必须和父类方法有同等的返值类型、方法名、参数列表。

*
重写的方法不能够利用于为再写方法还严峻的看权限,也就是说要您更写的父类的点子的访问权限是
protected ,那么你子类重写的法门的拜访权限就无能够是 private 或
default,只能是 protected 或 public。

 

 

 

 

后续中的构造方法: 

* 子类组织之长河中得调动用其基类的构造方法。

* 子类可在融洽的构造方法中利用 super(argument_list)
调用基类的构造方法。

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

  ** 如果调用
super,必须写以子类构造方法的第一尽,说白了就算若优先构造出大才见面时有发生子嗣,故置第一实行。

* 如果子类的构造方法中无亮地调用基类的构造方法(也就是说没写
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
是跟一个靶的援时回来 true,否则回 false。

* J2SDK 提供的部分像样,如 String、Date 等,重写了 Object 类的 equals
方法,调用这些近似的 equals 方法,x.equals(y),当 x 和 y
所引用的目标是千篇一律类对象都性能的内容相当时(并不一定是均等对象),返回
true,否则回 false。

* 可以根据需要在用户从定义类型受到另行写 equals 方法,这时你吗理应拿
hashCode 方法同样连重写。

 

 

 

目标转型(casting): 

* 一个父类的援类型变量可以“指向”其子类的目标。

*
一个父类的援类型变量不可以拜该子类对象新长的习性(包括静态属性和动态性)。

* 可以运用 引用类型变量 instanceof 类名
来判定该引用类型变量所“指向”的对象是不是属于此类或该类的子类。

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

*
子类的靶子好视作父类的靶子来用,称作向上转型(upcasting),反的曰向下转型(downcasting)。

唯独扩展性(extensibility):

*
一个榜首的平整就是,在搭新东西的以尽量的不用失去修改原来都做好的物,这个才吃可扩展性好。

 

 

 

抽象类(abstract): 

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

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

* 抽象方法才待声明,而非欲兑现。

*
含有抽象方法的切近必须于声称也抽象类,抽象类必须给连续(说的凡,若您定义了一个抽象类,该类不让另外类继承的言辞就不曾意思,因为虚无类非可知实例化,所以你无法以该抽象类中之静态和动态性),继承抽象类的子类必须重新写该抽象父类中有所的空洞方法

* 补充说明:abstract class 中得以生无抽象方法,而 interface 不得以。

 

 

 

final 关键字: 

* final 的变量的值不能够给反,且必须初始化。

  ** final 的分子变量

  ** final 的一些变量(形参)

* final 的点子不能够让再度写

* final 的近乎非可知吃接续

 

 

接口(interface): 

* 接口是空虚方法以及常量值的概念之聚集。

*
从实质上道,接口是平等种特有之抽象类,这种肤浅类中单独含有常量、方法的定义,而从未变量,没有法的贯彻。

* 多个无关之好像可实现和一个接口。

* 一个好像可兑现多独无关的接口。

* 与持续关系近乎,接口和落实类似里在多态性。

* 补充说明: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

 

相关文章