先复习上一次的继承extents, 练习一组代码
package day04;
import sun.awt.HeadlessToolkit;
public class Dog { public void eat(){
System.out.println("小狗爱吃肉骨头");
}
public void sleep(){
System.out.println("天天睡得很不错");
}
public static void main(String[] args) {
Dog dog=new Dog();
dog.eat();
dog.sleep();
Dog3 dog3=new Dog3();
dog3.eat();
}
}
// 子类 继承 父类
class Dog3 extends Dog{
//修改从父类继承过来的方法
@Override//表示该方法是父类的
public void sleep() {
super.sleep();
System.out.println("狗子们爱睡觉");
}
}
/**
* 一个.java文件中可以有多个类
* 当前文件中使用并列---*****
* 该类必须和文件名保持一致
*/
小球的上下碰撞运动
语法:repaint方法 ——重画并擦除 repaint();
Thread线程——线程的休眠时间 Thread.sleep();
while当...(true/false)执行花括号 { } 里的内容while(){ }
package day04;
import javax.swing.*;
import java.awt.*;
public class Test03 extends JPanel {
int y=0;
@Override
public void paint(Graphics g) {
super.paint(g);
g.fillOval(130,y,20,20);
}
public void run() throws InterruptedException {//负责实现小球走一步
y=y+1;//改变小球y坐标 y+1
//如果y的值超过344,让小球归零y=0
//if(){}如果小括号内的结果为true,则执行一次花括号里面的内容
if(y>=354){//处理越界问题 400窗体高-20小球直径-26标题栏高度
y=0;
}
Thread.sleep(10);
repaint();//重画并擦除
}
public static void main(String[] args) throws InterruptedException {
JFrame a = new JFrame();
a.setBounds(300, 100, 300, 400);
a.setResizable(false);
a.setDefaultCloseOperation(3);
Test03 c= new Test03();
a.add(c);
a.setVisible(true);
//不停的调用run方法
while (true){//死循环
c.run();
/**当小括号内的表达式结果为true的时候,执行花括号里面的内容
* 执行结束后再次判断小括号内表达式的结果,如果为true,继续执行花括号里面的内容,执行完再判断
* 直到小括号里面的结果为false,则结束
*/
}
}
}
/**
* JPanel
* paint方法
* repaint方法 重画并擦除
* 老板 经纪人 流水线
* 5位工人 ABCDE
* B 休息一下 (多长时间)
* 被叫醒->经纪人->老板
* 进程 一个正在执行的程序
* 一个进程是由多个线程组成的
* 线程的数据,有CPU决定,无法人为干涉
* 线程的休眠
* Thread.sleep(指定的休眠时间) 以毫秒为单位;
*/