对类与对象、构造函数、重载、继承、数据类型的理解
类
一个类里面主要包含有功能和属性
- 功能:想要一个不同的功能肯定要不同的方法去实现。
- 属性:字段,比如int=100 先定义一个int 并赋予它一个值为100的初始值,这就是它的属性。
类只是在定义大致的公共的东西
- 因为一个类可能会有很多对象使用它所以不能写的那么绝对。
访问修饰符
- public :公共的意思表示所有地方都能访问到。
- private:私有的意思表示只有当前这个类才能访问到它。
方法
public void maim(){}
//访问修饰符 返回值 方法名(参数){方法体}
- 访问修饰符:可以控制这个方法可以访问到的范围。
- 返回值:方法执行后返回的结果,void代表空。
- 方法名:这个方法的名字。
- 参数:调用这个方法需要用到的参数,可以有多个参数类型。
- 方法体:这个方法要具体要实现什么功能就写在这。
构造方法
- new对象时用到的方法。
- 每一个类都有一个构造函数,当你没有给类定义构造函数时就会有一个默认的构造函数方法体里没有代码也不用传参数——这就是无参构造。
- 构造方法和普通方法最大的区别就是没有返回值,可以理解为构造方法返回的肯定是这个类的对象所以不用写返回值。
堆和栈
- 堆:速度慢,容量大,结构不固定,是存放比较复杂的数据的地方。
- 栈:速度快,容量小,结构固定,是存放比较简单的数据的地方。
比如 student s=new student
- s:保存在栈空间。
- new student():保存在堆。
- =:是代表指向。
JAVA的垃圾回收机制
- 如果堆中一个对象已经没人任何东西指向它了那么它就是一个没用的对象了 这时候我们不用去处理它因为JAVA有垃圾自动回收机制会自动清理它。
数据类型
八大基本数据类型(简单数据类型)
- 整数类型
- byte:一个字节。
- short:2个字节。
- int:四个字节。
- long:8个字节。
- 浮点数据类型
- flaot:单精度浮点类型。
- double:双精度浮点类型。
- 布尔类型
- boolean:只有两个值一个true和一个false。
- 字符类型
- char:单个字符。
基本数据类型的储存
- 因为基本数据类型结构简单、固定,所以它们是储存在栈里面的。
复杂数据类型
- 除去八大基本数据类型其他的都是复杂数据类型。
基本数据类型的最大值和最小值
- byte是一个字节,有八位其中第一位表示的是符号所以它的取值是 byte=(27)=128 由于有0,所以它的最大值是127最小值是-128。
值传递和引用传递
- 基础数据类型是值传递,传递的是值。
- 复杂数据类型是引用传递 ,传递的是地址。
String和StringBuffer
- String是不可变字符串,如果你传递去做修改,那么它修改的不是原来的String。
- 如果一定要修改String可以用StringBuffer代替。
方法的重载
- 一个类中,有方法名相同入参类型不同的方法这就是是方法的重载。
- 返回值不影响方法重载。
Java的单根继承
- 一个儿子只有一个父亲,在JAVA里也是这样一个子类只能继承一个父类不能继承多个父类。
我有和我是
- 我有无非就是new一个这个对象,所以我有了这个对象的功能。
- 我是就代表我继承于这个类,所以我本身就是这个类的子类也有这个类的功能。
创建对象时,类中代码的执行顺序
1、先执行的是static静态代码块,包括块中的代码从上到下执行。
2、然后再是普通代码块,包括块中的代码从上到下执行。
3、最后才是构造方法。
static
- static的变量代码块只执行一次,当第一次把字节码文件加载到虚拟机时执行。
- static只有一份所有只属于这个类不属于任何对象
- 静态方法可以直接用这个类来调用。