Java基础--Day04

1. 构造方法:构造函数、构造器、构建器-----------------------复用给成员变量赋初值的代码

   - 作用:给成员变量赋初值
   - 与类同名,没有返回值类型(连void都没有)
   - 在创建(new)对象时被自动调用
   - 若自己不写构造方法,编译器默认提供一个无参构造方法,若自己写了构造方法,则不再默认提供
   - 构造方法可以重载

2. this:指代当前对象,哪个对象调用方法它指的就是哪个对象

   ​          只能用在方法中,方法中访问成员变量之前默认有个this.

   this的用法:

   - this.成员变量名---------------------------访问成员变量

     > 当成员变量与局部变量同名时,若想访问成员变量,则this不能省略

   - this.方法名()--------------------------------调用方法(一般不用)

   - this()------------------------------------------调用构造方法(一般不用)

3. null:表示空,没有指向任何对象。

   - 若引用的值为null,则该引用不能进行任何点操作了,若操作则发生NullPointerException空指针异常。

4.引用类型数组:

   - 给元素赋值时,需要new个对象
   - 若想访问对象的数据,需要通过数组元素去打点来访问

5.继承:

   - 作用:代码复用

   - 通过extends来实现继承

   - 超类/父类:共有的属性和行为

     派生类/子类:特有的属性和行为

   - 派生类可以访问派生类的+超类的,但超类不能访问派生类的

   - 一个超类可以有多个派生类,但一个派生类只能继承一个超类-----------单一继承

   - 继承具有传递性

   - java规定:构造派生类之前必须先构造超类

     - 在派生类的构造方法中若没有调用超类的构造方法,则默认super()调用超类的无参构造方法

     - 在派生类的构造方法中若自己调用了超类的构造方法,则不再默认提供

       > 注意:super()调用超类构造方法,必须位于派生类构造方法的第一行

画哆啦A梦实例:

JFrame 窗口

package cn_tena.Day03.drowWork;

import javax.swing.*;

/**
 * 创建窗体类 jframe
 */
public class StartJFrame extends JFrame {
    //新建一个初始化的方法,进行窗体的初始化
    public void Init(){
        //设置窗口大小
        this.setSize(800,600);
        //设置窗口居中
        this.setLocationRelativeTo(null);
        //关闭按钮生效
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //画布添加到画框
        StartJPanel sj = new StartJPanel();
        this.add(sj);
        //更改图标
        this.setIconImage(Image.tubiao.getImage());
        //窗体显示
        this.setVisible(true);
    }

    public static void main(String[] args) {
        StartJFrame startJframe = new StartJFrame();
        startJframe.Init();
    }
}

JPanel 画布

public class StartJPanel extends JPanel {
    @Override
    public void paint(Graphics g) {
        super.paint(g);
        Image.beijing.paintIcon(null,g,0,0);


        g.setColor(Color.BLACK);
        g.fillOval(266,116,246,231);
        //颜色83,164,202
        g.setColor(new Color(83,164,202));
        //脑袋坐标268,118,242,227
        g.fillOval(268,118,242,227);

        //颜色
        g.setColor(Color.white);
        //白脸283,148,221,192
        g.fillOval(283,148,221,192);

        //嘴巴:326,187,143,126
        g.setColor(new Color(126,48,72));
        g.fillOval(326,187,143,126);
        g.fillOval(321,207,54,68);
        g.fillOval(420,207,54,68);
        g.setColor(Color.white);
        g.fillOval(300,173,184,87);

        //眼睛颜色:
        g.setColor(Color.black);
        g.fillOval(347,126,51,63);
        g.fillOval(392,126,51,63);
        g.setColor(Color.white);
        g.fillOval(348,127,49,61);
        g.fillOval(393,127,49,61);


        //眼珠子
        g.setColor(Color.black);
        g.fillOval(375,153,11,17);
        g.fillOval(403,153,11,17);
        g.setColor(Color.white);
        g.fillOval(379,160,4,8);
        g.fillOval(406,160,4,8);

        //舌头
        g.setColor(Color.black);
        g.fillOval(347,261,52,45);
        g.fillOval(397,261,51,45);
        g.setColor(new Color(206,102,91));
        g.fillOval(348,262,50,45);
        g.fillOval(397,262,50,45);
        g.fillOval(360,287,77,26);


        //胡子
        g.setColor(Color.black);
        g.fillOval(302,200,41,41);
        g.fillOval(306,209,41,38);
        g.setColor(Color.white);
        g.fillOval(307,204,53,44);
        g.fillOval(304,202,41,38);

        g.setColor(Color.black);
        g.fillOval(444,200,41,41);
        g.fillOval(440,209,41,38);
        g.setColor(Color.white);
        g.fillOval(427,204,53,44);
        g.fillOval(442,202,41,38);

        g.setColor(Color.black);
        g.drawLine(292,172,350,190);
        g.drawLine(292,171,350,189);
        g.drawLine(292,173,350,191);

        g.drawLine(284,210,351,211);
        g.drawLine(284,211,351,212);
        g.drawLine(284,209,351,210);

        g.drawLine(289,243,351,226);
        g.drawLine(289,242,351,225);
        g.drawLine(289,244,351,227);


        g.drawLine(434,192,486,170);
        g.drawLine(434,191,486,169);
        g.drawLine(434,193,486,171);

        g.drawLine(438,206,500,204);
        g.drawLine(438,205,500,203);
        g.drawLine(438,207,500,205);

        g.drawLine(438,219,499,234);
        g.drawLine(438,220,499,235);
        g.drawLine(438,218,499,233);

        //鼻子
        g.setColor(new Color(176,71,84));
        g.fillOval(384,174,28,28);
        g.setColor(new Color(233,233,234));
        g.fillOval(386,178,11,11);


    }

图片类:

/**
 * 图片类
 */
public class Image {
    public static ImageIcon beijing;
    public static ImageIcon tubiao;

    static {
        beijing = new ImageIcon("image/jiu1.jpg");
        tubiao=new ImageIcon("image/beijing.jpg");
    }
}

成品:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值