Java知识点阶段总结
总结
一、Java入门
1.类的格式:
public class 类名{}
注意:
1.类名和文件名必须要完全相同,包括大小写。
2.类名的首字母要大写,如果由多个单词组成,则每个单词的首字母要大写。
2.java主函数的格式:
public static void main(String [] args){}
注意:
1.不要随意更改主函数,否则无法识别。
2.注意主函数中的大小写。
3.主函数必须要在类的大括号中。
3.输出函数
System.out.println();输出圆括号中的内容后换行
System.out.print();输出圆括号中的内容后不换行
注意:
System.out.print()方法中必须要有一个输出值,否则报找不到符号。
二、类和对象
1.有哪些是对象?
万事万物皆对象。
生活中任何一个物体都是一个对象。
对象:特征和功能(行为)。
面向对象编程(OOP)中对象是基础和核心。
2.类的组成
面向对象编程(OOP)中类只是一个基本的单位。
类是由相似的特征和相似的行为对象的抽象(集合)。
类叫做属性和方法。属性对应的是对象的特征,方法对应的是对象的行为。
类是模板。
3.类的基本格式
public class 类名{
//属性
private 数据类型 属性名;
//方法
public 返回值类型 方法名(数据类型 参数名,...){
//代码体
}
}
4.实例化对象和调用方法的格式
实例化对象的格式:
类名 对象名(变量名) = new 类名();
Student stu = new Student();
调用方法的格式:
对象名.方法名(参数值,...);
stu.setName("张三");
stu.study();
String name = stu.getName();
5.java中方法的分类
java中方法分为两类:
1.根据返回值类型划分
有返回值的方法
无返回值的方法
2.根据参数划分
有参数的方法
无参数的方法
6.java的数据类型:
分为两类:
1.引用类型
使用class关键字定义的类都属于该类型。
2.基本数据类型
byte 8bit
char 16bit
short 16bit
int 32bit
long 64bit
float 32bit
double 64bit
boolean true和false
三、构造函数及方法重载
1.构造函数
1.构造函数的语法格式
public 构造函数名(数据类型 参数名,...){
//代码
}
注意:
构造函数名必须和类名完全相同。
构造函数名又可以叫做构造方法或者构造器。
2.构造函数的用途
1.初始化属性值
2.实例化对象
实例化对象的格式:
类名 对象名 = new 构造函数名(参数值,...);
3.构造函数和普通方法的区别
1.构造函数没有返回值类型,普通方法必须要有一个返回值类型。
2.构造函数名必须和类名完全相同,普通方法名可以任意定义。
没有自定义构造函数,那么Java会给每一个类提供一个默认的构造函数。
如果自定义了构造函数,则默认的构造函数将被覆盖,无法再继续使用。
2.方法重载
要实现方法重载必须满足的条件:
1.方法名必须要相同,
2.方法所带参数个数或者参数类型要不同,
3.顺序上的类型不同也是方法重载。
3.this 关键字
如果参数名和属性相同,则使用this关键字区分,加上this的表示属性,没有加的表示参数。
this关键字是用来表是当前对象的,当前调用方法的对象是谁,那么方法中的this就是该对象。类似生活中的"我".
可以用来调用构造函数。
4.swing介绍
java的图形界面有两类:1.swing 2.awt。
swing是使用Java语法在awt的基础上构建的一套图形界面类,这一套图形界面可以在不同的平台上显示的方式一直。
1.容器类
能装在其他的独立组件对象或者容器对象的。
javax.swing.JFrame 窗体类 顶级容器
javax.swing.JPanel 面板类
2.独立组件类
不能状态其他的组件和容器。
javax.swing.JLabel
javax.swing.JTextField
javax.swing.JPasswordField
javax.swing.JComboBox
javax.swing.JCheckBox
javax.swing.JButton
3.布局类
java.awt.FlowLayout 流式布局类
java还有很多布局类,都是以Layout结尾的类,位于java.awt和javax.swing包下。
四、类的继承
1.为什么需要继承?
1.相同的属性和方法不许要在重写,提高了代码的重用性。
2.提高了程序的扩展性。
2.继承的语法格式
继承的关键字是:extends
格式:
public class 子类名 extends 父类名{
}
3.子类能继承到父类的那些方法和属性
1.子类和父类都在同一个包下:
公有的受保护的属性和方法都能被子类继承调用。
2.子类和父类不在同一个包下:
公有的属性和方法能被子类继承调用。
4.方法的重写
实现重写的条件:
1.方法名,返回值类型,参数个数以及参数类型都必须要和父类的完全相同。
2.唯一可以不同的是访问修饰符(public ,protected ,private),但是子类的访问修饰符必须要大于或者等于父类的访问修饰符。
子类和父类之间是可以实现方法的重载的。
5.自动转型
格式:
第一种:
父类名 对象名 = new 子类构造函数(参数,...);
第二种:
子类名 对象名 = new 子类构造函数(参数,...);
public 返回值类型 方法名(父类名 对象名){
//代码
}
方法名(对象名);
Student stu = new UNStudent();
JButton btnLogin = new JButton();
jf.add(btnLogin);
缺点:
使用自动转型,就不能调用子类的方法,如果调用则编译出错。
6.多态
不是单一技术点,而是由方法重载,继承,方法重写,自动转型等引起程序有多种表现的形式。
五、接口和事件
1.定义接口的语法格式
关键字是interface
格式:
public interface 接口名 extends 接口名,...{
//常量
public static final 数据类型 常量名 = 值;
注意:常量名所有的字母全部大写。
//抽象方法
public 返回值类型 方法名(参数类型 参数名,...);
注意:不能加{},如果加了就表示方法有了具体的实现,不再是抽象方法了。
}
注意:
1.接口默认的访问修饰符是public
2.接口不能用来实例化对象
2.实现接口的语法格式
关键字implements
格式:
public class 类名 extends 类名(抽象类) implements 接口名,...{
}
注意:
当一个类实现一个接口的时候,那么该类就必须要实现(重写)接口中定义所有抽象方法。
类实现一个接口时,还是去继承一个类或者抽象类,(java类的继承是单继承)
类可以同时实现多个接口。
3.接口和类的区别
1.定义的关键字不同
2.接口中的方法只是抽象的,类中的方法必须要有具体的实现。
3.接口中没有属性和构造方法,类中可以有。
4.接口不能创建对象,类可以实例化(创建)对象。
5.接口如果继承接口不需要实现方法,类实现接口就必须要实现所有的抽象方法。
4.接口的用途
1.接口是一种特殊的类。
2.接口是用来定义程序的规则。
3.接口编程。Spring
5.抽象类
关键字
abstract class
格式:
public abstract class 抽象类名 extends 类(抽象类) implements 接口,...{
//抽象方法定义:
访问修饰符(protected public) abstract 返回值类型 方法名(参数类型 参数名,...);
}
抽象类中可以定义的:
1.属性,常量,方法,构造方法,抽象方法。
抽象类可以定义抽象方法,所以当类去继承抽象类的时候,必须要实现抽象类中所有的抽象方法。
抽象类中可能有抽象方法,所以不能用来实例化对象.
6.swing事件机制
事件源:登录按钮,你得动作是发生在哪一个组件上,那么该组件就是事件源。
事件类型:addActionListener();
ActionListener 动作监听器接口,所以定义一个类去实现这个接口 LoginListener
事件处理者:动作监听器接口的一个方法或者LoginListener类
六、Java关键字
1.java总共有52个关键字
2.保留字是2个,const,goto
关键字是
native
strictfp
vloatile
assert 断言
synchronized 并发 多线程
transient 瞬时的 IO 对象流 ObjectInputStream ObjectOutputStream
访问修饰符:
private 私有的
public 公有的
protected 受保护的
包:
package 定义包的关键字
import 引入包的关键字
数据类型:
void 表示空,一般是用于方法的返回值类型定义。
byte
short
char
int
long
float
double
boolean
数值:
true
false 布尔数据类型的默认值
null 引用数据类型的默认值,String
return 返回数据
定义类,抽象类,接口,创建对象,实现接口,继承类或接口的关键字,枚举:
class
abstract
interface
new
implements
extends
this
super
enum
条件:
if
else
switch(表达式){
case 值:
break;
default:
break;
}
循环:
continue
for
do
while
异常关键字:
try
catch
finally
throws
throw
判断是否是当期类的实例关键:
instanceof
static 修饰的方法,属性都只有一个实例存在。如果用static关键字去修饰类,那么只能
修饰内部类或者匿名内部类。
final 程序主类可以使用final进行修饰。
使用final关键字修饰的类不能被继承。
使用final修饰的方法不能子类重写。
使用final定义的属性( 变量),属性值是不能被改变的,如果改变,则报错。
七、集合框架
1.什么是集合框架?
集合框架就是一个容器。
数组、链表、堆栈、队列......
利用java的对象名中存储的地址。
实现数据的封装。
2.java的集合框架有哪些?
Collection
List:有序的,允许重复的数据
Set:无序的,不允许重复的数据
Set集合实现画板重绘,数据会重复?
根据什么来判断数据重复呢?
1.基本数据类型
数值。
2.引用类型
地址。
Map:键值对的集合框架,键是不允许重复,值时允许重复的。
八、文件和异常
1.文件的分类
1.真实文件
2.虚拟文件
3.目录文件
2.文件名和文件全名的区别
文件全名:路径、文件名和扩展名。
文件名:文件名和扩展名。
3.相对路径和绝对路径
相对路径:直接用目录名开始
绝对路径:会用盘符开始
4.不同系统的目录分隔符和路径分隔符是什么?
windows:"/",";"
linux:"\",":"
直接使用File类去获取路径分隔符和目录分隔符。
static String pathSeparator 与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
static char pathSeparatorChar 与系统有关的路径分隔符。
static String separator 与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
static char separatorChar 与系统有关的默认名称分隔符。
5.使用File类来创建文件或目录,删除文件和获取文件属性。
FileTest类
6.如何查找所有磁盘的文件呢?
searchFile类
1.得到所有磁盘的File对象
2.统计文件总数
1.结束条件未知
2.目录-->文件 目录-->目录...-->文件
3.递归实现:自己调用自己
7.什么是异常?
在运行的过程中,产生不可预料的事情而是程序终止运行。
8.常见的异常类
Exception:java异常的父类
RuntimeException运行时异常(隐式异常)
NullPointerException 当应用程序试图在需要对象的地方使用 null 时,抛出该异常
ClassCastException 当试图将对象强制转换为不是实例的子类时,抛出该异常
IllegalArgumentException 抛出的异常表明向方法传递了一个不合法或不正确的参数。
NumberFormatException 当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
IndexOutOfBoundsException 指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。
(强制异常)
IOException 当发生某种 I/O 异常时,抛出此异常
EOFException 当输入过程中意外到达文件或流的末尾时,抛出此异常。
FileNotFoundException 当试图打开指定路径名表示的文件失败时,抛出此异常。
Error:错误
9.异常的处理
try{}catch(){}finally{}
throws throw
10.如何分析异常,如何调试异常呢?
1.找到异常类,确定异常信息。
2.在这一行代码的前面加上System.out.println()语句做测试。
多用System.out.println();