基础语法 : 数据类型 变量 方法 *****
数据类型 :
基本数据类型 : 4类8种 byte short int long float double boolean char
引用数据类型 : 数组 类 接口
数据类型转换 :
标准 : 对应类型的数据赋值给对应类型的变量
自动类型提升 : 小 ---> 大
强制类型转换 : 大 ---> 小
变量 :
数据类型 变量名 = 赋值;
基本 : int i = 1; 基本数据类型的数据是数据值(100,1.1,'a',false...)
引用 : int[] arr = new int[]{1,2,3}; 引用数据类型的数据是对象数据
break,continue,return :
break :
作用 : 结束,终止,打破
应用场景 : 循环 switch
continue :
作用 : 继续,结束本次循环,直接进入到下一次循环
应用场景 :循环中
return :
作用 : 1)提前结束方法 2)带出返回值
应用场景 : 方法中
面向对象 :
面向过程与面向对象
共同点 : 都是思想,思维方式,思考问题的角度
异同点 : 关注"实现过程|步骤",关注"该找谁实现"
实体类|javabean|模板类|图纸类
分析 : 提取一些列对象|事物的共性
成员 : 类中方法外
局部 : 方法内|语句块内
1) 属性---->成员变量
2) 功能---->成员方法
对象 : 描述现实生活中的一些事物
通过new关键字创建对象
构造器 : 特殊的方法(重载)
作用 : 为对象初始化信息的(为对象属性赋值)
使用 : new
定义 : 名字要求与类名一致 没有返回值没有void
特点 :
没有显示定义任何构造器,默认提供空构造
存在显示定义的构造器,不会默认提供
重载
this与super区别 :
指代对象
this : 当前对象(new|调用成员方法)
构造器首行调用本类中的其他构造器
this(实参)
区别同名的成员与局部变量问题
默认就近原则找局部
可以通过this.调用成员
super :
指代父类对象
子类构造器首行调用父类构造器,如果没有显示调用,默认调用父类空构造
区分子父类同名成员问题(成员变量,成员方法)
就近原则找子类,可以通过super.调用父类成员
super与this都不能使用在静态环境中
static : 成员修饰符,只能修饰成员,不能修饰局部
静态的
静态变量 | 类变量
静态方法
静态块
静态内部类
块 : block
自成作用域
局部代码块|普通语句块 : {}定义在局部位置
成员代码块|构造块 : {}定义在成员位置
跟随new一起使用
编译的,编译器就会把构造块中内容编译到构造器的内部,构造器代码的上面
静态块 : 被static修饰的成员代码块
同步块
成员是属于对象的,需要跟随对象进行使用
静态是属于类的,需要跟随类使用,可以跟随对象使用
先父类后子类
先静态后成员
成员变量在对象的堆内存中可以存在多个,静态变量在静态区中只能有一份
成员变量 : 定义在成员位置的变量
实例变量 : 没有被static修饰的成员变量
静态变量|类变量 : 被static修饰的成员变量
成员方法 :
实例方法
静态方法
封装 : 隐藏内部的实现细节,对外提供公共的访问方式
优点 : 提高代码的复用性 提高代码的安全性
属性私有化,方法,类等都是封装的体现
私有private :
访问权限修饰符 : 成员修饰符,只能修饰成员不能修饰局部
本类 同包类 不同包下的子类 不同包下的其他类
private √
default √ √
protected √ √ √(通过继承关系)
public √ √ √ √
包与导入 :
包机制
1.管理众多的资源 2.提供多重命名空间
标识符 : 在java中所有起名字的地方的名字
命名规则 :
组成 : 由字母,数字,下划线_,美元符号$任意组合而成
数字不能开头
关键字与保留字不能作为标识符使用
严格区分大小写
命名规范 :
见名知意
驼峰命名原则 :
包名 : 全部小写,多层级之间使用.分隔 you.ji.xian
类名|接口名 : 每个单词首字母大写
变量名|方法名 : 第一个单词小写,第二个单词开始每个单词首字母大写
常量名 : 全部大写,多个单词之间使用_连接
导包 :
1.指定权限定名使用
2.使用import关键字导包
指明类型存在位置 权限定名 : 包名.类名;
静态导入
继承 : 子类一旦继承父类,就有权使用父类的成员
单继承机制,一个子类只能存在一个父类
一个父类可以存在多个子类
接口可以多实现
父类 : 定义子类的共性
子类 : 对象的共性
super :
重写 : *****
重写与重载之间的区别 :
共同点 : 都是方法的特性 都是多个方法之间发生的
不同点 :
实现重载3个条件 :
1.同一个类中得多个方法
2.方法名相同
3.参数列表不同|方法签名不同(方法名+参数列表 : 是方法的唯一标识)
实现重写3个条件:
1.2个类中的2个方法
2.继承关系|实现关系
3.方法签名完全相同
final : 可以修饰成员可以修饰局部的
最终的
被final修饰的变量为常量
被final修饰的方法不能被重写
被final修饰的类不能被继承(太监类)
多态 : 一种事物的多种形态,多种表现形式---> 行为多态
Student -> Person
多态的前提 :
继承 | 实现
多态的最终体现 : 父类引用指向子类对象
Person s = new Student(); s.name.. s.haha();
多态调用成员特点 :
多态调用成员变量 : 编译运行看父类
多态调用成员方法 : 编译父类,运行看子类
多态的调用配合方法的重写才有意义.
转型 : 引用数据类型的类型转型
向上转型 : 小 ---> 大
向下转型 : 大 ---> 小
如果想要通过多态引用调用子类中独有新增成员,需要先向下转型,然后调用
Student stu = (Student)s;
java.lang.ClassCastException : 类型转换异常
instanceof : 判断前面的引用是否是指向后面类型的对象,或者子类对象,如果是返回true,不是返回false
抽象类 :
被abstract修饰的类
可以定义 : 属性,构造器,方法(具体,抽象)..
接口 :
是特殊的抽象类
可以定义 :
jdk1.7及之前 :
公共的静态的常量 : public static final 任意省略
公共的抽象的方法 : public abstruct
jdk1.8及之后 :
可以定义带有方法体的方法
静态方法
默认方法
toString,equals