一.基础
1.变量按照数据类型分为基本数据类型和引用数据类型
基本数据类型:数值型:byte,short,int,long,float,double
字符型:char
布尔型:boolean
引用数据类型:类(class)
接口(interface)
数组
2.变量按照声明的位置分类,分为成员变量和局部变量
成员变量:实例变量(不用static修饰)
类变量(用static修饰)
局部变量:形参
方法局部变量
代码块局部变量
3.基本数据类型转换:
1)自动类型转换:容量小的类型自动转化为容量大的类型,数据类型按照容量大小排序为
char,byte,short->int->long->float->double
2)强制类型转换:将容量大的类型转化为容量小的类型,使用时加上强制转换符:()
3)布尔类型不可以强制转换为其他的类型。
4.三元运算符:
(条件表达式)?表达式1:表达式2
5.程序设计结构:
switch-case:switch(表达式),表达式的值必须是以下几种类型:byte,short,char,int
case语句后的值必须是常量;
6.数组:数组本身是引用数据类型,但数组中的元素可以是任意类型;数组的长度一旦确定,就不能修改
数组初始化:
int[] arr = new int[3];
int arr[] = new int[]{8,9,10};
7.Arrays工具类的使用:用来操作数组
boolean equals(int[] a,int[] b) //判断两个数组是否相等
String toString() //输出数组信息
void fill(int[] a,int val) //将指定值填充到数组中
void sort(int[] a) //对数组进行排序
int binarySearch(int[] a,int key) //使用二分法检索指定的值
二.面向对象
1.面向对象和面向过程
1)面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做
2)面向对象:将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做
2.面向对象的三大特征
1)封装
2)继承
3)多态
3.Java语言基本元素:类和对象
类是对一类事物的描述,是抽象的,概念上的定义;
对象是实际存在的该类事物的每个个体。
4.对象的创建和使用:
类名 对象名 = new 类名();
对象名.对象成员的方式访问
类的访问机制:
1)在一个类中的访问机制,类中的方法可以直接访问类中的成员变量(static方法访问非static变量,编译不通过)
2)在不同类的访问机制中,先创建要访问类的对象,再用对象访问类中成员
内存解析:
堆:所有的对象实例
栈:存储局部变量
方法区:用于存放被虚拟机加载的各种类信息,常量,静态变量,即时编译器编译后的代码等数据。
匿名对象:
1)不定义对象的句柄,直接调用这个对象的方法,这样的对象叫做匿名对象。
2)如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
3)经常使用匿名对象作为实参传递给一个方法调用。
5.成员变量(属性)
修饰符 数据类型 属性名 = 初始化值
6.成员函数
方法被调用一次,就会执行一次;
无具体返回值的情况,返回值类型用关键字void表示,那么方法体中不必使用return语句;如果使用,仅用来结束方法;
不能在方法内部调用方法;
定义方法时,方法的结果返回交给调用者处理。
7.方法的重载
1)概念:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
2)类型特点:与返回值类型无关,只看参数列表,且参数列表不同(参数个数或者参数类型),调用时,根据方法参数列表的不同来区别。
8.可变个数的形参:
方法名(参数的类型名...参数名);
可变参数:方法参数部分指定类型的参数个数是可变多个:0个,1个或者多个;
可变个数形参的方法与同名的方法之间,彼此构成重载;
可变形参需要放在形参声明的最后。
三.封装和隐藏
1)四种访问权限修饰符
修饰符 | 类内部 | 同一个包 | 不同包的子类 | 同一个工程 |
private | Yes | |||
缺省 | Yes | Yes | ||
protected | Yes | Yes | Yes | |
public | Yes | Yes | Yes | Yes |
对于class的权限修饰符只能使用public和default(缺省)
2)隐藏:将数据转化为私有的,再用公共的getXxx()和setXxx()方法隐藏
四.构造器
1)特征:
具有与类相同的名称;
不声明返回值类型;
不能被static,final,synchronized,abstract,naive修饰,不能有return语句返回值。
2)作用:
创建对象,给对象初始化
3)语法格式:
修饰符 类名(参数列表){
初始化语句;
}
4)说明:
Java语言中,每一个类至少有一个构造器;
默认构造器的修饰符与所属类的修饰符构造器一致;
一旦显式定义了构造器,则系统不再默认提供构造器;
一个类可以创建多个重载的构造器;
父类的构造器不可被子类继承。
5)属性赋值过程:
默认初始化->显式初始化->构造器初始化->通过对象.属性或者对象.方法赋值
五.JavaBean
1)用Java语言写的可重用组件。
2)JavaBean符合以下特征:
类是公共的;
有一个无参的公共的构造器;
有属性,且有对应的get,set方法。
六.关键字this的使用
1)当this在方法内部使用,即表示这个方法所属对象的引用
2)当this在构造器内部使用,即表示该构造器正在初始化的对象
3)this可以作为一个类中构造器互相调用的特殊格式