Java基础笔记

1.Java中类的成员变量会有初值 局部变量不会有初值

2.构造方法:用来初始化对象 方法名与类名相同 分为有参和无参 有参和无参可共存

3.静态变量 可以通过类名直接访问 所有对象均可以访问 但无法修改

4.初始化块:类的实例创建时 会依次执行初始化块 且只会执行一次 通常为成员变量赋值
静态初始化块:static修饰的块 只在类加载时执行 只能给静态变量赋值

5.封装: 访问修饰符 可见性 private 默认 protected public 访问范围分别在本类 同包 子类 其他 依次扩大
geter seter 和OC相同

6.Java中的包 通过import导入 package关键字 必须在第一行
可以通过包名区别名字相同的类 OC中并没有 这个应该就是命名空间
java中的包命名规则一般为 com.功能.类名 且为全小写
import com.A.* 将A下的所有文件导入

7.Java中的this关键字 表示当前对象 类似于OC中的self

8.内部类 普通内部类 创建: 内部类 对象名 = 外部类对象.new 内部类;
访问外部类属性 外部类名.this.属性名
静态内部类 创建: 内部类 对象名 = new 内部类
访问外部类静态变量 外部类名.静态变量名
方法内部类 只能在该方法中使用 (swift也有这样的特性 个人感觉没啥乱用 导致代码一团糟)

9.继承 extends关键字 单继承 与OC一致(貌似了解的只有C++是多继承)
构造方法执行顺序 先父类 后子类
属性赋值 先执行初值 再执行构造方法中的赋值
final 修饰类 类不允许被继承 修饰属性 属性只能被出初始化一次 修饰方法 方法不能被重写
super 代表父类对象 可以访问父类的属性 方法等 类似OC

10.重写 与OC相同

11.Object类 toString()方法 会输出改对象的内存地址 可以通过重写该方法 更改预期的结果
equals()方法 比较对象是否指向同一块内存地址 OC直接使用==判断

12.多态 对象具有多种形态(引用多态、方法多态) 与OC类似

13.引用类型转换 强制类型转换时使用instanceof关键字保证安全 类似于OC中的 isKindOfClass

14.抽象类 abstract关键字 只声明 不实现 规定子类应有的方法
eg. abstract class A{abstract void funcA();} //抽象类A包含了一个子类必须实现的funcA

15.接口 规定了某些类必须实现某些方法
interface关键字
通常被其他类继承 实现 不能使用
格式: [修饰符] abstract interface [接口名] [extends 父接口1,父接口2...]
{
零个到多个常量定义。。
零个到多个抽象方法定义。。
}
使用接口 implements关键字
格式: [修饰符] class 类名 extends 父类 implements 接口1, 接口2...

你可能感兴趣的:(Java基础笔记)