JAVA基础

抽象类

抽象类格式:public abstract class 类名{} 

抽象类方法格式:public abstract 返回值类型 方法名(){}

注意:

#抽象类不能实例化

#抽象类中不一定有抽象方法,但有抽象方法一定是抽象类

#可以有构造方法

#抽象类的子类要么得重写所有抽象方法,要么得是抽象类

接口

#接口用关键字interface来定义

public interface 接口名{}

#接口不能实例化

#接口和类的实现是通过关键字implements实现

public class 类名 implements 接口名{}

#接口的子类要么得重写所有抽象方法,要么得是抽象类(可以单实现和多实现)

特点

#成员变量

只能是常量

默认修饰符:public static final 

#构造方法

没有

#成员方法

JDK7以前只能是抽象方法

JDK8可以定义有方法体的方法(默认,静态)

格式:public default 返回值类型 方法名(){}

注意:子类不会被强制重写,重写时要去掉default,多个接口存在相同名字必须重写

可以使用静态方法:public static 返回值类型 方法名(){}(只能通过该接口调用,不能通过类名和方法名)

JDK9可以定义私有方法

其实就是内部消化,防止句子重复成分过多,也能防止其他类使用(静态私有的方法也可以)

接口和接口的关系可以是单继承也可以是多继承

适配器模式

对接口的抽象方法实施空实现,再用子类对真正需要的方法重写

内部类

成员内部类

写在成员位置的属于外部类成员(可以直接访问外部类)

获取内部类对象

#直接创建:外部类名.内部类名 对象名=new 外部类名().new 内部类名();

#外部类创建方法(return new 内部类名();)也可以调用内部类

 静态内部类

1.静态内部类也是成员内部类的一种

2.静态内部类只能访问外部类的静态变量和静态方法(访问非静态需要创建外部类的对象)

//创建静态内部类对象的格式

外部类名.内部类名 对象名=new 外部类.内部类();

//调用静态内部类方法的格式

外部类名.内部类名.方法名();

局部内部类

1.就是将内部类定义在方法中,类似于方法中的局部变量

2.外界是无法直接访问的,必须创建对象

创建对象:内部类 对象名=new 内部类();

3.该类可以直接访问外部成员,也可以直接访问方法内的局部变量

匿名内部类(包含继承/实现,方法重写,创建对象)

格式:new 类名或接口名(){

重写方法;

};

使用场景:如果继承类/实现类只需要用一次就可以使用匿名内部类

匿名内部类的多态

可以用: 类名 对象名 =new 类名或接口名(){

重写方法;

};

这样就是匿名内部类的多态,重写的方法满足编译看左边,运行看右边。

事件

#事件源:按钮 图片 窗口...

#事件:操作(单机鼠标,鼠标划入)

#绑定监听:当事件源发生了某事件,则执行某个代码

键盘监听:KeyListener
鼠标监听:MouseListener(划入,划出,按住,松开,单机)
动作监听:ActionListener(空格,鼠标左键点击)
package com.jennsy.ui;

import javax.swing.*;
import java.awt.event.*;

public class setJFrame extends JFrame implements MouseListener, ActionListener, KeyListener {
    //创建按钮(鼠标监听和动作监听需要)
     JButton jButton=new JButton("点我啊");//可以是任何内容
    public setJFrame(){
        //*****界面初始化
        //设置页面大小
        this.setSize(603,680);
        //设置标题
        this.setTitle("练习");
        //设置界面顶置
        this.setAlwaysOnTop(true);
        //设置居中
        this.setLocationRelativeTo(null);
        //设置关闭游戏虚拟机停止
        this.setDefaultCloseOperation(3);

        //****事件
        //设置按键大小
        jButton.setBounds(0,0,100,50);
        //给按钮创建动作监听和鼠标监听
        jButton.addActionListener(this);
        jButton.addMouseListener(this);

        //将按钮添加到界面
        this.getContentPane().add(jButton);
        //显示界面
        this.setVisible(true);

    }

//
    @Override
    public void actionPerformed(ActionEvent e) {
        //获取当前被操作的按钮
        Object source=e.getSource();


    }
    @Override
    public void keyTyped(KeyEvent e) {
        //获取某个按键(按键都有对应数值)
        int code=e.getKeyCode();
    }
    @Override
    public void keyPressed(KeyEvent e) {

    }
    @Override
    public void keyReleased(KeyEvent e) {

    }
    @Override
    public void mouseClicked(MouseEvent e) {

    }
    @Override
    public void mousePressed(MouseEvent e) {

    }
    @Override
    public void mouseReleased(MouseEvent e) {

    }
    @Override
    public void mouseEntered(MouseEvent e) {

    }
    @Override
    public void mouseExited(MouseEvent e) {

    }
}

  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值