JAVA——接口、抽象类

Java——接口、抽象类



方法的分类


普通方法

格式:public 返回类型 变量名(){}

理解:对象执行的方法。

构造方法

格式:public 变量名(){}

理解:赋予对象的行为特性。

抽象方法

格式:public abstract 变量名();    (注意分号)

理解:因为没有{},所以抽象方法是没有过程的,也因此要用;结尾。



类的分类


普通类

格式:public class 类名{}

抽象类

格式:public abstract class 类名{}

接口

格式:public interface 类名{}


普通方法

抽象方法

构造方法

对象创建

普通类


抽象类


接口




补充:

属性有两种,常量和变量。

常量:值不变。格式:static final 类型 属性名;

变量:值可改。格式:类性 属性名;

因为接口允许的方法是单一的,并且不允许变量的出现,所以abstractstatic final可省略。



抽象类和接口的作用


1、作为父类,被继承。

2、由1及上述表格可得,抽象类和接口约束了子类方法的定义。也就是说,如果子类是普通类,由于普通类不可以使用抽象方法,所以要重写父类的抽象方法,即把抽象方法具体化。

可以形象理解:接口:老板,负责发号施令、确定所要做的任务。

  抽象类:管理层,负责发号施令,也可以完成一部分任务。

  普通类:员工,接受命令干活。

不同于普通类和抽象类,多个接口可被一个子类继承。接口之所以称为接口,我想是因为接口这个东西是多选择的,插这个可以有这个属性、功能,插另外的就有另外的,一起插就如排插,接口间互不影响。并且可以有:既继承了普通类或者抽象类,也继承了接口,但要让普通类或者抽象类先写。

public class 类名 extends 普通类或者抽象类的类名 implements 接口类名1,接口类名2……{}



监听器


简易绘图工具制作:

窗体实现包:java.swing.JFrame

窗体的属性设置:大小、位置、标题、是否可见(整个窗体,不可见就什么都看不到了)、关闭操作(1关闭后不退出程序,2关闭后延迟推出程序,3关闭后立刻退出程序)

监听器包:java.awt.event.MouseListener

图形绘制包:java.awt.Graphics


监听器的功能:

用于监视某个组件的即时(动态)行为。

画笔的实现:

调用:主函数—>窗体—>画笔

不能继承画笔这个方法,涉及到更深的问题。只能通过另外一个对象(图形需要在此展示的对象,如窗体)来获取画笔,然后再把这个对象绑定到窗体上。

画笔的获取必须在设置窗体的setVisible之后。





代码展示


主函数

package com.Eric.drawpen;


public class Main {

public static void main(String[] args) {

Frame p = new Frame();

p.startFrame();

}

}






窗体

package com.Eric.drawpen;


import java.awt.Graphics;

import javax.swing.JFrame;


public class Frame extends JFrame{

public void startFrame() {

this.setSize(400,400);

this.setDefaultCloseOperation(3);

this.setLocationRelativeTo(null);

this.setTitle("primary");

this.setVisible(true);

//Graphics g = Graphics();  不允许创建一个类再创建Graphics对象

Graphics g = this.getGraphics();

Listener m = new Listener(g);//创建对象会调用构造器

this.addMouseListener(m);

}

}






监听器

package com.Eric.drawpen;


import java.awt.Graphics;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;


public class Listener implements MouseListener{

public int x1,x2,y1,y2;

public Graphics g;//创建变量

public Listener(Graphics g1) {//构造器的创建

g = g1;

}

  public void mousePressed(MouseEvent e) {

x1 = e.getX();

y1 = e.getY();

  }


  public void mouseReleased(MouseEvent e) {

    x2 = e.getX();

    y2 = e.getY();

    //释放瞬间画线

    g.drawLine(x1, y1, x2, y2);

  }

 

  //不需要的方法

@Override

public void mouseClicked(MouseEvent arg0) {

// TODO Auto-generated method stub

}

@Override

public void mouseEntered(MouseEvent arg0) {

// TODO Auto-generated method stub

}

@Override

public void mouseExited(MouseEvent arg0) {

// TODO Auto-generated method stub

}

}

猜你喜欢

转载自blog.csdn.net/qq_41596538/article/details/79041295