Java知识重点梳理Word文档格式.docx
《Java知识重点梳理Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java知识重点梳理Word文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
![Java知识重点梳理Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-10/7/77f79ec7-e547-48e0-8037-944b2ab23dc0/77f79ec7-e547-48e0-8037-944b2ab23dc01.gif)
也就是说,它不依赖类特定的实例,被类的所有实例共享。
static对象可以在它的任何对象创建之前访问,无需引用任何对象。
private是访问权限限定,static表示不要实例化就可以使用
三大特性:
继承,多态,封装。
继承:
继承是为了重用父类代码,同时为实现多态性作准备。
能够大大缩短开发周期,降低开发费用。
封装:
类使得数据和对数据的操作集成在一起,从而对使用该类的其他人来说,可以不管它的实现方法,而只管用它的功能,从而实现所谓的信息隐藏。
多态:
方法的重写、重载与动态连接构成多态性。
因为单继承的限制,(猫extends动物),造成功能上的限制,所以引入多态。
重载、重写
重载:
多个同名函数同时存在,具有不同的参数个数/类型。
(型构不同)
重写(覆盖):
重写方法只能存在于具有继承关系中,重写方法只能重写父类非私有的方法。
当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要覆盖父类方法,即在子类中重写该方法——相同型构,不同实现。
最终目的:
设计一个结构清晰而简洁的类
接口与抽象类
abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制。
对比:
抽象类表示该类中可能已经有一些方法的具体定义,但是接口就仅仅只能定义各个方法的界面(方法名,参数列表,返回类型),并不关心具体细节。
从某种意义上说,interface是一种特殊形式的abstractclass。
类是现实中实际存在的事物。
抽象类:
实际不存在的抽象概念,即一些性质的集合,比如Object、形状、家、生物、神仙等等
抽象类里面可以有非抽象方法但接口里只能有抽象方法声明方法的存在而不去实现它的类被叫做抽象类(abstractclass),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
不能创建abstract类的实例。
接口(interface)是抽象类的变体。
在接口中,所有方法都是抽象的。
多继承性可通过实现这样的接口而获得。
JavaSwing
一个用户登录框实例
SwingLoginExample.java文件代码如下:
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JPasswordField;
importjavax.swing.JTextField;
publicclassSwingLoginExample{
publicstaticvoidmain(String[]args){
//创建JFrame实例
JFrameframe=newJFrame("
LoginExample"
);
//Settingthewidthandheightofframe
frame.setSize(350,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/*创建面板,这个类似于HTML的div标签
*我们可以创建多个面板并在JFrame中指定位置
*面板中我们可以添加文本字段,按钮及其他组件。
*/
JPanelpanel=newJPanel();
//添加面板
frame.add(panel);
/*
*调用用户定义的方法并添加组件到面板
placeComponents(panel);
//设置界面可见
frame.setVisible(true);
}
privatestaticvoidplaceComponents(JPanelpanel){
/*布局部分我们这边不多做介绍
*这边设置布局为null
panel.setLayout(null);
//创建JLabel
JLabeluserLabel=newJLabel("
User:
"
/*这个方法定义了组件的位置。
*setBounds(x,y,width,height)
*x和y指定左上角的新位置,由width和height指定新的大小。
userLabel.setBounds(10,20,80,25);
panel.add(userLabel);
*创建文本域用于用户输入
JTextFielduserText=newJTextField(20);
userText.setBounds(100,20,165,25);
panel.add(userText);
//输入密码的文本域
JLabelpasswordLabel=newJLabel("
Password:
passwordLabel.setBounds(10,50,80,25);
panel.add(passwordLabel);
*这个类似用于输入的文本域
*但是输入的信息会以点号代替,用于包含密码的安全性
JPasswordFieldpasswordText=newJPasswordField(20);
passwordText.setBounds(100,50,165,25);
panel.add(passwordText);
//创建登录按钮
JButtonloginButton=newJButton("
login"
loginButton.setBounds(10,80,80,25);
panel.add(loginButton);
}
执行以下命令输出结果:
$javacSwingLoginExample.java
$javaSwingLoginExample
概念解析:
JFrame
–java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大化、最小化、关闭。
JPanel
–Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing包中,可以进行嵌套,功能是对窗体中具有相同逻辑功能的组件进行组合,是一种轻量级容器,可以加入到JFrame窗体中。
。
JLabel
–JLabel对象可以显示文本、图像或同时显示二者。
可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。
默认情况下,标签在其显示区内垂直居中对齐。
默认情况下,只显示文本的标签是开始边对齐;
而只显示图像的标签则水平居中对齐。
JTextField
–一个轻量级组件,它允许编辑单行文本。
JPasswordField
–允许我们输入了一行字像输入框,但隐藏星号(*)或点创建密码(密码)
JButton
–JButton类的实例。
用于创建按钮类似实例中的"
Login"
事件监听
**
*Java事件监听处理——自身类实现ActionListener接口,作为事件监听器
*
*@authorcodebrother
*/
classEventListener1extendsJFrameimplementsActionListener{
privateJButtonbtBlue,btDialog;
publicEventListener1(){
setTitle("
JavaGUI事件监听处理"
setBounds(100,100,500,350);
setLayout(newFlowLayout());
btBlue=newJButton("
蓝色"
btDialog=newJButton("
弹窗"
//将按钮添加事件监听器
btBlue.addActionListener(this);
btDialog.addActionListener(this);
add(btBlue);
add(btDialog);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//***************************事件处理***************************
@Override
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==btBlue){
Containerc=getContentPane();
c.setBackground(Color.BLUE);
elseif(e.getSource()==btDialog){
JDialogdialog=newJDialog();
dialog.setBounds(300,200,400,300);
dialog.setVisible(true);
/**
*Java事件监听处理——内部类处理
classEventListener3extendsJFrame{
//构造方法
publi