Java笔记整理(下)
第四章
类class:
访问控制修饰符 :
- public:任何地方
- private:仅类内部
对于信息类数据一般用 private 存储,并设置 set/get 来更改与调用数据
成员变量、构造函数、类方法:
参考作业《类专题练习》(知识点不难,但是代码太长了不适合放博客)
几个注意点:
- 局部变量与全局变量的作用范围问题
- 函数重载问题
继承:
关键字:extends
几个注意点:
- super是调用父类构造函数,故先执行父类构造函数后执行后面的语句
- 区分 super 和 this 指针两种传参
前者是调用父类构造,其变量在父类中已经声明,后者变量可以在子类声明 - super只能写在子类构造函数的第一行(语法)
可以通过super.name和super.show()调用父类中被隐藏的name变量和show()函数
抽象类:
含有抽象方法的类必须被声明为抽象类
public abstract class Main { public abstract double show(); }
抽象类必须被继承,抽象方法必须被重写,抽象方法只声明不需要实现。
无法实例化抽象类。
接口:
public interface Music{ String name="Real life"; //所有变量默认为public static final public void sing(); //定义的所有方法默认为public public void stop(); }
一个类可以 implements 多个接口,接口可以继承接口
第五章
窗体JFrame:
public class Main extends JFrame { Main(){ super("name");//定义窗体名字 setSize(400,200);//设置窗体大小 setLocation(300,100);//设置窗体位置 setBounds(300,100,400,200); setVisible(true);//设置窗体可见 setDefaultCloseOperation(EXIT_ON_CLOSE);//设置退出 //添加组件 validate(); } }
容器面板JPanel:
- 用于存放其他组件 add() 方法
- 用于确定窗体布局
- 常用方法(通用)
- 背景色setBackground(Color c)
- 前景色setForeground(Color c)
布局安排与管理:setLayout
FlowLayout(FlowLayout.left,20,40)
- 右对齐,左右间距20,垂直间距40
- 默认居中对齐
BordLayout:
- 将布局分为南、北、中、东、西5部分,后定义会覆盖重定义,一个部分只能存在一个Panel
- 未声明的默认归为中部
bn=new JButton("bn"); setLayout(new BorderLayout()); add(bn,BorderLayout.NORTH); //add(new JButton("bn"),BorderLayout.NORTH); 等效于1、3
GridLayout:
setLayout(new GridLayout(行数,列数,行距,列距)); //行距列距可以忽略不定义
按钮JButton:
- setText() 设置按钮内文字
- 字体Font:bnt1.setFont(new Font("粗体",Font.BOLD,14)) //例
事件监听器Event Listener:(implements)
import java.awt.event.*
ActionListener:
应用:点击按钮、选择菜单、输入回车等操作会触发Action Event
在方法内用 e.getSource()==bn1 判断当前点击的触发事件是否属于按钮bn1。
public class Main extends JFrame implements ActionListener { JButton bn; Main(){ //... bn.addActionListener(this); } public void actionPerformed(ActionEvent e){ } }
单独建立一个外部类实现监听(相较内部类内部代码更长,要实现成员的初始化)
public class Main extends JFrame { JButton bn; Main(){ //... bnListener handler =new bnListener(); bn.addActionListener(handler); } } class bnListener implements ActionListener{ public void actionPerformed(ActionEvent e){ } }
ItemListener:
应用:点击单选按钮、勾选复选框、在下拉框选择列表选项等操作会触发Item Event
class MyListener implements ItemListener { @Override public void itemStateChanged(ItemEvent e) { } }
MouseListener(不考)
KeyListener(不考)
标签JLabel:
public class Main extends JFrame{ JLabel lb; Main(){ //... lb=new JLabel("Java"); lb.setText("Python"); add(lb); validate(); } }
其他组件:
- 文本框JTextField、密码文本框JPasswordField
- 多行文本框JTextArea
- 复选框(可完成多项选择)JCheckBox
bnt1.isSelected()判断某个按钮是否选中,返回值boolean - 下拉列表JComboBox
第六章
try-catch-finally
注意:
- 一个 try 后可接多个 catch
- catch 和 finally 都不能脱离 try 单独存在
- finally块不论是否正常运行都会执行
try{ //测试代码段 } catch(ArithmeticException e){ //捕捉异常并输出 e.printStackTrace();//打印异常 } catch(Exception e){ //捕获所有遗漏的异常 //只能作为最后一个catch } finally { //一定会执行的句子,一般用于释放占用的资源 }
throw:
try{ //代码段 if(xxx){ throw new Exception("出错了"); } } catch (Exception ex){ //捕获异常后的处理 }
制作:BDT20040