一、抽象数据类型
用一堆不同类型的数据来描述的一个事务。
二、类
1.类与对象的关系
什么是类?
我们把有共同特征和共同行为的事务归纳为一种类型。同时
用各种类型的变量来描述特征,共同的行为用方法来描述。
类是抽象的,是没有具体实例的,只是一种对象的模板,
什么是对象?
类的实例化,具体个体。
2.面向对象编程--面向过程编程
在程序中使用的数据,比如具体一个人的姓名,年龄,性别,
行为等,分散着使用,没有逻辑性,比较杂乱。把这些要
使用的数据封装到一个类型的对象上,我们想使用数
据,直接使用对象即可。
3.类的定义和对象的创建
public class 类名{
属性--共同特征
方法--共同行为
}
类名 变量 = new 构造方法();
4.引用类型变量(与八大基本数据类型的变量)
引用类型变量里存的是对象的地址信息
变量之间的赋值是址传递
八大基本数据类型存的是值。
变量之间的赋值是值传递
5.jvm的内存管理机制
三大主区
方法区:负责加载类的信息(.class文件)
堆:java对象是在堆中分配内存,类中成员变量在堆中分配内存空间,
这些内存空间称做该对象的实体或对象的变量。
栈:对象的引用是在栈中分配内存
这个空间叫栈帧,当方法执行完毕,栈帧消失,
空间得到释放。
6.方法的定义
修饰词 返回值类型 方法名(形参){
方法体
}
7.方法的重载:
在一个类中,方法名相同,参数的类型列表不同(类型从左到右的顺序)
不需要考虑返回值和修饰词
public void sum(int a){}
方法签名:sum int
protected int sum(int b,int b){}
方法签名:sum int int
8.构造方法,是特殊的方法,没有返回值这个位置,方法名和类名相同
作用:给对象的属性初始化,对象的实例化是调用new关键字来完成的
new 构造方法;
能否重载:能
系统给类默认提供一个无参构造方法,如果手动提供后,系统
就不在提供了。
9.关键字this
this在方法定义期间是没有意义的,规定模板,确定逻辑结构,
当程序运行起来后,this是指向对象的。
public Person(String name){
this.name = name;
}
另外一种用法:this(有参传参),只能在某一个构造方法中使用,并且
只能放在首行首句,表示调用本类中其他的构造器
public Person(int a){
this.a = a;
}
public Person(int a,int b){
this(a);
this.b = b;
}
10. null和NullPointException
null:引用类型的默认值,
String a = null;---说明空间a里面没有地址信息,
int length = a.length();--相当于null.length();
如果有这样类似的代码,就会出现空指针异常(程序运行时,会报)