类&方法&对象---PC 版美颜相机v1

界面类

package BeautyCameraPC;

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

public class UI
{
    public void initUI()
    {
        JFrame jf = new JFrame("BeautyCameraPC");
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jf.setLocationRelativeTo(null);
        jf.setSize(1000,1000);
        jf.setVisible(true);

        Graphics g = jf.getGraphics();
        Mouse mouse = new Mouse(g);
        mouse.setG(g);
        jf.addMouseListener(mouse);

    }

    public static void main(String []args)
    {
        UI myUI = new UI();
        myUI.initUI();
    }

}

类与对象

类是对象的模板或蓝图,对象是类的实例在Java按照类名 对象名 = new 构造方法; 初始化对象1

JFrame jf = new JFrame("BeautyCameraPC");

鼠标监听器

package BeautyCameraPC;

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

public class Mouse implements MouseListener
{
    private Graphics g;
    public Mouse(Graphics g){this.g=g;System.out.println("construction method");}
    public Mouse(){System.out.println("Default construction method");}

    public void setG(Graphics g){this.g=g;}

    @Override
    public void mouseClicked(MouseEvent e)
    {
        System.out.println("click");
        int x=e.getX();
        int y=e.getY();
        System.out.println("x="+x+" "+"y="+y);
        ImageIcon image = new ImageIcon("D:\\Jave\\1.png");
        g.drawImage(image.getImage(),100,100,null);

    }

    @Override
    public void mousePressed(MouseEvent e)
    {

    }

    @Override
    public void mouseReleased(MouseEvent e)
    {

    }

    @Override
    public void mouseEntered(MouseEvent e)
    {

    }

    @Override
    public void mouseExited(MouseEvent e)
    {

    }
}

构造方法的重构

在初始化对象时我们会发现虽然在类中构造方法名字相同,但是参数类型和顺序不相同,这时涉及到重构2

    public Mouse(Graphics g){this.g=g;System.out.println("construction method");}
    public Mouse(){System.out.println("Default construction method");}

  1. 不变数据:如果对象的数据在初始化后不会改变,可以直接在构造方法中为这些数据赋值,可变数据:如果对象的数据在程序运行过程中可能会改变,那么应该创建相应的方法来允许在对象创建后修改这些数据。 ↩︎

  2. 如果在定义类时没有显式地创建任何构造方法,Java编译器会自动提供一个无参数的默认构造方法,如果开发者自己定义了一个或多个构造方法,那么默认的无参构造方法将不会被自动生成。如果需要保留无参构造方法,必须显式地定义它↩︎

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值