2024-03-01 23:26:34
第一天
- 容器
1
2private Arraylist<String> notes = new Arraylist<String>();
// <>充当of的作用创建的是一个基于String的容器其可以储存用户传入的数据 - 调用父类中的函数或者变量
1
super.变量();
- 父类和子类同时创造同一个变量或函数根据就近原则赋值
第二天
多态变量
-
- 可以通过父类定义子类的对象
//关于函数的定义问题 //谁可见 + 什么类型+ 名称 // public String hello (){
1
2
3
4
5
6
7
8
9
### 忘记多少天了
1. 关于java中的抽象类
- 抽象类无法创造实例但是子类中可以重构这个抽象并且在别的类中可以调用子类所创造的实例
- ** 抽象类无法创造实例 **
```java
public Cell place(int row, int col,Cell o)
//这其中的Cell就是一个抽象类但是这个o不是这个抽象类的实例而是他子类的实例
//java还蛮有趣的java中的可视化窗口
- 创建JFrame实例以此来创建窗口
1
JFrame frame = new JFrame();
- 在窗口中创建表格** 创建的表格并没有数据我们需要创建一个新的Data类去存储这些数据因为数据和页面分离的模式更加方便我们以后对页面进行美化或者修改而数据不需要改变 **
1
2
3JTable table = new JTable();
JScrollPane pane = new JScrollPane(table);//在步骤是为了滚一下吧数据滚进来不然你输入的数据进不来这个表格
frame.add(pane);//把这个滚完数据后的表格添加到frame中去
** 在 Data (假如说是这个名字) 类中我们需要创建一个TableModel的接口以此来实现存储数据的功能 代码如下 **1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49public class KCbData implements TableModel(){
//紧接着会报错只需要按着报错所指引的做就可以了
//因为TableModel中为抽象函数必须要重写才可以使用运行完错误提示修改后出现以下一些代码
public int getRowCount() {
return 0;
}
public int getColumnCount() {
return 0;
}
public String getColumnName(int columnIndex) {
return null;
}
public Class<?> getColumnClass(int columnIndex) {
return null;
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
public Object getValueAt(int rowIndex, int columnIndex) {
return null;
}
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
}
public void addTableModelListener(TableModelListener l) {
}
public void removeTableModelListener(TableModelListener l) {
}
}
- 在窗口中创建表格
- 首先调用JFrame中的pack函数目的是计算窗口的大小
1
frame.pack();
- 之后调用setVisable函数使窗口可视化
1
2frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//这步为运行时的窗口提供关闭按钮
frame.setVisable(true);
-可视化窗口中添加按钮
1
2
3
4
5
6
7
8
9
10
11
12JFrame frame = new JFrame();
//创建一个框架实例
JBbutton btnStep = new JBbutton("这里买呢存放按钮的名称")
//创建button
btnStep.addActionListener(new AbstractAction(){
public void actionPerformed(ActionEvent e){
System.out.println("按下了");
}
});
frame.add(btnstep,BorderLayout.NORTH);
//把刚才创建的btnStep按钮添加到frame这个框架中并且注明位置- 创建JFrame实例以此来创建窗口
如何实现在同一个类文件中两个类互相通信
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15class StepListener implements
ActionListener {
private ActionListener oo;
public void StepListener (ActionListener o){
oo = o;
}
oo.someFunction();
//现在可以在StepListener中访问ActionListener中的someFunction
函数啦啦啦
}
public class ActionListener(){
public void someFunction(){
}
}内部类和匿名类(Swing的消息机制广泛的使用匿名类)
- 内部类可以访问类中所有的变量甚至是private but 当外部是函数时只能访问那个函数里面final的变量
- 匿名类 (不用起名字了就很快乐)
- 匿名类没有名字 such as
1
2
3
4
5
6btnStep.addActionListener(new AbstractAction(){
public void actionPerformed(ActionEvent e){
System.out.println("按下了");
}
});
关于注解的定义
- ‘@Target’是java中定义注解时让这个注解运行在哪种类型函数中的一个??注解??
- METHOD: 注解可以用于方法声明。
- FIELD: 注解可以用于字段声明,包括枚举常量。(可以用在变量上)
- ANNOTATION_TYPE: 注解可以用于注解类型声明(即其他注解)。
- CONSTRUCTOR: 注解可以用于构造函数声明。
- PARAMETER: 注解可以用于方法参数声明。
- TYPE_USE: 注解可以用于任何类型使用的位置,不仅限于声明,还包括类型的任何使用,如泛型和类型转换
- ‘@Target’是java中定义注解时让这个注解运行在哪种类型函数中的一个??注解??
java反射
- `modifiers`获取权限修饰符 - `parameter`参数 - `setAccessible(true)`取消权限校验
- 用
getMethods
反射出的public函数中有Object中的唤醒函数
- 用
io流
BufferedWriter w = new BufferedWriter(new FileWriter("E:\\Important(E)\\java\\myReflect\\赵畅.txt"));
读取文件