Java 基础

2017-03-24  本文已影响0人  Mr_ZZ先生

0.解压密码:www.mfhk8.com

1.变量的意义:由于我们操作基本数据类型时不可能操作数据地址,所以声明变量和对应的栈中的地址一一对应,这样操作方便。对于操作引用数据类型,我们使用变量管理时,通过操作栈空间变量对应的地址的变量,来操作堆空间的数据。

2.关于变量的作用域,当 变量在{ } 结束之后 ,会被JVM(java虚拟机)回收。

3.Java 在处理char 类型数据时,在底层是按照unicode码来处理的。

4.Java 构造方法:(1).构造方法名称必须与类名一致,构造方法没有返回值。(2).构造方法主要是为类中的属性初始化。(3).每个类在实例化之后都会调用构造方法,如果没有构造方法,系统默认会创建一个无参的什么都不带的构造方法。(4).构造方法也可以重载。

5.匿名对应 针对于只是用一次的对象,换句话说就是OC里面的[Person new].tell。

6.Java封装 就是将对应的类的属性声明为私有的,之后通过setter 方法和getter 进行数据的赋值的获取。

7.this 关键字:(1).表示当前类中的属性好调用方法,(2).调用本类中的构造方法(默认的构造方法),(3).表示当前类对象。与OC中的self相似。

8.static: (1),使用static 声明属性,static 声明全局属性 (2)使用static声明方法,直接使用类名调用,(3)静态方法不能调用非静态的方法和属性.(个人理解:被static 修饰的无论属性还是方法 都相当于变成对应的在该类的属性)

9.final :(1) final 关键字在java中被称为完结器,标识最终的意思.(2).final声明类.方法.属性. 使用final声明的类不能被继承,使用final声明的方法不能被重写,使用final 声明的变量变成常量,常量是不能被修改的。

10.抽象类:包含一个抽象方法(声明而未被实现的方法,抽象方法必须使用abstract 关键字声明)的类,抽象类不能被实例化,而是通过子类集成的方式,zilei(如果不是抽象类)必须重写抽象类中的所有抽象方法。定义格式:

11,接口  

接口本身不能实例,而是可以多继承的子类可以通过implements实现方法进行实例。

#@# 一个类可以同时实现抽象类和接口

@@ 一个接口不能继承一个抽象类,但是却可以通过extends 关键字同时继承多个接口实现接口的多继承

接口与抽象类的相同点和不同点

相同点

* 都不能被直接实例化,都可以通过继承实现其抽象方法

* 都是面向抽象编程的技术基础,实现了诸多的设计模式。

不同点

* 接口支持多继承;抽象类不能实现多继承

* 接口只能定义抽象规则;抽象类既可以定义规则,还可能提供已实现的成员。

* 接口是一组行为规范;抽象类是一个不完全的类,着重族的概念。

* 接口可以用于支持回调;抽象类不能实现回调,因为继承不支持。

* 接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法;抽象类可以定义字段、属性、包含有实现的方法。

* 接口可以作用于值类型引用类型;抽象类只能作用于引用类型。例如,Struct就可以继承接口,而不能继承类。

12 .继承

java 单继承,子类要想访问父类的私有属性,可以通过setter 和getter 方法进行访问 和OC 一样。

13.对于父类和子类的构造方法 :系统先调用父类构造方法,再调用子类构造方法 Java 构造方法和类型相同 ,OC 中 -init  super init

14.继承中 方法的重写

在方法的重写的时候 注意super 的使用  java 中方法的重写和OC 一样

15.String 类型: String 类型 是不可更改的 改变的是 堆内存地址的指向。

16.StringBuffer 类型 :由于String 类型是不可更改的 ,但StringBuffer类型却是可以进行更改的 (更改的是堆 中的内容) 

消耗资源和不消耗资源  第一种开辟101快内存空间  第二种开辟1块内存空间,就是StringBuffer 内存可以修改

第一张 第二张

StringBuider 和StringBuffer 相类似 几乎是一样的

16.Java 多态性 主要体现在 重载 和 重构 继承下的向上转型和向下转型(强制类型转换) ,Java面向对象instanceof关键字 是用来判断这个对象是不是 这个类的对象 返回值 为Bool

上一篇下一篇

猜你喜欢

热点阅读