Class ‘xxx‘ is public, should be declared in a file named ‘xxx.java‘

1.

      化工小白又回来了,化工厂拧阀门拧累了又回来学会Java。看到csdn上画心型图很火,就把代码拿去试,结果出现如下报错。。

       报错

Class 'heart' is public, should be declared in a file named 'heart.java'

    解决根据idea的提示把public去掉就不报错。

后面回想起来浙大翁恺老师讲的public和pravite的区别

   

对于一个类如果加了“public”表示该项目任何位置的类都可以访问;不加public默认为“friendly”类,只有同一个包里的类可以访问

      但一个编译单元即xxx.java文件只能有一个public类,且和xxx.java文件同名。一个编译单元可以有多个“friendly”类。

      所以小白以后抄代码记得保持java文件名和类名相同了,或者把public去掉。

2.心型图出来了挺漂亮的,好像是调用java.awt和java.swing来作图的

抄的代码如下

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

 class heart extends JFrame {
    private static final long serialVersionUID = -1284128891908775645L;

    // 定义加载窗口大小

    public static final int GAME_WIDTH = 500;

    public static final int GAME_HEIGHT = 500;
    // 获取屏幕窗口大小
    public static final int WIDTH = Toolkit.getDefaultToolkit().getScreenSize().width;

    public static final int HEIGHT = Toolkit.getDefaultToolkit().getScreenSize().height;

    public heart() {

        // 设置窗口标题
        this.setTitle("心形曲线");
        // 设置窗口初始位置
        this.setLocation((WIDTH - GAME_WIDTH) / 2, (HEIGHT - GAME_HEIGHT) / 2);
        // 设置窗口大小
        this.setSize(GAME_WIDTH, GAME_HEIGHT);
        // 设置背景色
        this.setBackground(Color.BLACK);
        // 设置窗口关闭方式
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 设置窗口显示
        this.setVisible(true);
    }
    @Override
    public void paint(Graphics g) {
        double x, y, r;
        Image OffScreen = createImage(GAME_WIDTH, GAME_HEIGHT);
        Graphics drawOffScreen = OffScreen.getGraphics();
        for (int i = 0; i < 90; i++) {
            for (int j = 0; j < 90; j++) {
                r = Math.PI / 45 * i * (1 - Math.sin(Math.PI / 45 * j)) * 18;
                x = r * Math.cos(Math.PI / 45 * j) * Math.sin(Math.PI / 45 * i) + GAME_WIDTH / 2;
                y = -r * Math.sin(Math.PI / 45 * j) + GAME_HEIGHT / 4;
                //设置画笔颜色
                drawOffScreen.setColor(Color.PINK);
                // 绘制椭圆
                drawOffScreen.fillOval((int) x, (int) y, 2, 2);
            }
            // 生成图片
            g.drawImage(OffScreen, 0, 0, this);
        }
    }

    public static void main(String[] args) {
        heart demo = new heart();
        demo.setVisible(true);
    }
}

 

                          小白加油🆙💪🏻!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值