Java文件的基本结构
a. Java文件中的基础是类,所有的方法以及属性都通过类的实现或改变.
b. 一个Java文件中可以包含多个类,但是只能有一个公共类( public ).
c. Java文件的编译和运行均是由Java自带的虚拟机实现.
1. Java数据类型
a. 基本数据类型: Boolean(1bit) byte(8bits) char(16bits) short(16bits) int(32bits) float(32bits) double(64bits) long(64bits)
b. 引用类型(类类型): 类,对象,数组等都属于引用类型.引用类型在所声明的变量所占的内存中存放的是地址,在对该类型的数据进行赋值的时候,传递的是地址.
2. 类与对象的关系分析
a. 对象是类的实例化;类是拥有相同行为和属性的事物的抽象.
b. 类中定义的方法和属性都必须通过对象来实现.
c. 对象只能调用在其定义的类及其父类中声明了的方法.
3. 如何定义一个类(属性,方法)
定义类的方法:
public class 类名 {
访问限定修饰符 数据类型 变量名;
public 返回值类型 方法名([参数列表]) {
方法体;
}
}
class 类名 {
访问限定修饰符 数据类型 变量名;
public 返回值类型 方法名([参数列表]) {
方法体;
}
}
PS:一个文件中只能含有一个public类.
4. 创建对象的方式
a. 创建对象的格式: 类名 对象名 = new 构造函数();
1) 构造函数的用途:创建对象是通过构造函数来实现的,可以用来初始化属性.
2) 重写构造函数的格式:
public 类名([参数列表]) {
方法体;
}
b. 如果构造函数被重写,系统中默认的无参构造函数不再起作用.
5. 构造方法的作用,特点,构造方法与一般方法的区别
作用: 构造方法是用来创建对象的.
特点: 构造方法的方法名必须是要和类名相同.
与一般方法的区别: 1. 构造函数用来创建对象,而一般方法用来执行某对象的行为;
2. 一般方法的方法名不能和类名相同;
3. 构造函数没有返回值类型,而一般方法都必须有返回值类型.
6. 为什么需要继承?如何去继承?继承到了什么?
a. 继承的好处: 继承可以使代码被重复利用,减少代码数量,有利于代码编写;
b. 继承的格式:
public class 子类名 extends 父类名 {
}
c. 1) 子类和父类在同一个包下: 父类中的公有的、受保护的、默认的属性和方法都可以被子类继承到.
2) 子类和父类不在同一个包下: 父类中只有公有的方法和属性能被子类继承到.
7. 类,抽象类,接口的特点,区别
a. i) 抽象类的定义:
public abstract class 类名 {
//可以在当中定义任何访问限定修饰符的方法
//可以定义抽象方法
public abstract 返回值类型 方法名([参数列表]);
//抽象类中必须要有abstract关键字来定义抽象方法,用来和具体方法区别
}
ii) 定义接口的格式:
public interface 接口名 {
//接口中定义的方法必须是抽象方法,即不能有方法体.
//接口中的方法必须是public .
public abstract 返回值类型 方法名([参数列表]);
public 返回值类型 方法名([参数列表]);
//定义常量
public static final 数据类型 常量名 = 值;
}
实现接口要通过关键字implements:
public class 类名 implements 接口名{
//接口中的所有方法都要被继承了这个接口的类重写.
}
b. 抽象类就是类和接口的结合.类中定义的方法必须有具体的实现,而在抽象类中定义的方法可以是抽象方法,也可以是具体方法,但是在接口中的方法一定是抽象方法体.接口中没有构造函数,而类和抽象类均有构造函数.
8. 方法的重载与重写
a. 方法的重载: 要实现方法的重载,则在类中方法名要完全一样,系统通过参数列表和参数类型来区别到底是调用哪个方法
b. 方法的重写: 首先必须是要有继承关系的两个类,而且只能是子类重写父类中的方法,其次,父类中要被子类重写的方法必须在子类中定义的和父类完全一样,包括返回值类型,方法名,参数列表,唯一能够不一样的就是访问限定修饰符,子类中的访问限定修饰符所限定的范围必须大于或者等于父类中的访问限定修饰符所限定的范围.
在一个子类中调用方法时,若该方法没有重写过,则子类调用的是父类中的方法,而如果该方法在子类中被重写,那么子类在调用该方法时调用的是本类中重写过的方法.
9. 自动转型与强制转型
a. 自动转型:必须有继承关系的两个类,才能使用自动转型.自动转型只能由子类转成父类,父类不能转成子类.
b. 即将一个类型的数据转变成其他类型的数据,注意,强制转换过程中要考虑到数据转换之后存放是否合理, 如将int类型转换成short类型,由于int类型在内存中占32位,而short只占16位,故在转换时有可能出现溢出等错误.
10. 多态的理解
通过继承机制中的函数重写,自动转型以及函数重载,来实现多态.多态增加了程序的可拓展性.能够让一种方法具有多种表现形式.
11. 常用的界面开发组件
a. java中要实现图形界面有两大类: 分别是Swing和AWT.
Swing组件在不同的系统下能够保证组件尽量以相同的方式工作.
b. 分类:
1.容器类
可以添加其他的组件,就叫容器类
JFrame 窗体类
JPanel 面板类
2.组件类
JLabel 标签类
JTextField 输入框类
JButton 按钮类
JComboBox 下拉列表类
JCheckBox 复选框类
3.布局
FlowLayout 流式布局类
在java.awt包和javax.swing包下所有以Layout结尾的类都是布局类
12. 事件监听机制的理解
程序运行过程中从事件源处得到的信息, 并将信息传递给相应的对此事件感兴趣的组件, 并对该事件源作出反应. 由此实现对各个事件的监听.
13. 数组
数组是一种线性的数据结构.
一维数组: 创建方式: i) 数据类型 数组名[ ] = new 数据类型[长度];
ii) 数组类型 [] 数组名 = {值,值,值,...};
iii) 数据类型 数组名 [] = new 数据类型[]{值,值,值,...};
二维数组: 创建方式: i) 数据类型 数组名[][] = new 数据类型[行长度][列长度];
ii) 数组类型 [][] 数组名 = {{值,值,值,...},{值,值,值,...},...};
iii) 数据类型 数组名 [][] = new 数据类型[][]{{值,值,值,...},{值,值,值,...},...};
数组的优缺点:
优点: 通过下标来操作数据,比较方便.
缺点: 在声明数组的时候就已经确定好了数组的长度,即其存储空间是定长的,所以可能会导致存储空间不够或者浪费存储资源等问题.
14. 自定义队列实现:长度可变的数组
队列就是通过类来操作和管理数组, 封装对数组的操作, 可以解决数组中存在的可能导致存储空间不够或者浪费内存的问题.
15. 值传递与引用传递的理解
值传递: i) 用于基本数据类型的数据,String 类型也是通过值传递来传递数据.
ii) 值传递是将一个变量的值复制一份再送给要接收的变量,两个变量之间在值传递之后不再存在任何关系, 改变其中一个变量的值不会影响到另外一个变量的值.
引用传递: i) 用于引用类型数据的传递.
ii) 引用传递传递的是地址, 即将一个变量中存放的要被操作的数据的地址复制一份以后再将该地址传给要接收的变量, 传递完成之后两个变量中存放的是代表同一个内存的地址, 故对其中一个变量进行操作事, 另外一个变量的数据也会相应的发生改变.