会动的小乌龟
主函数
package cn.tedu.day03;
import javax.swing.JFrame;
/*
* JFrame---窗体-----相框
* JFrame---画布----相片
* 导包:
* 1、手动导包 import...
* 2、自动导包 ctrl+shift+o
* 3、点击红色的叉号
*/
public class TurtlePro {
public static void main(String[] args){
//1、创建一个窗体对象
JFrame frame = new JFrame();
//2、给窗体添加标题
frame.setTitle("小龟龟");
//3、给窗体添加大小
frame.setSize(1400, 800);
//4、窗体居中显示
frame.setLocationRelativeTo(null);
//类名,静态常量, 减少内存占用
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Wugui tj=new Wugui();
//添加画布到面板上
frame.add(tj);
frame.addMouseListener(tj);
tj.addMouseListener(tj);
//5、显示窗体
frame.setVisible(true);
}
}
画乌龟
package cn.tedu.day03;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JPanel;
public class Wugui extends JPanel implements KeyListener,MouseListener,Runnable{
/**
*
*/
//头的位置
int x=300;
int y=200;
//脚的初始位置
int k1=300,t1=200;//左上
int k2=300,t2=200;//右上
int k3=300,t3=200;//左下
int k4=300,t4=200;//右下
//Graphics
//加水的波纹
int[] a=new int[300];//300个x坐标
int[] b=new int[300];//300个y坐标
//构造方法:方法名和类名:无任何返回值类型,:无参构造
public Wugui(){
//随机产生位置
for (int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*1400);
b[i]=(int)(Math.random()*800);
}
Thread t=new Thread(this);
t.start();
}
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
this.setBackground(Color.cyan);
//画波纹
g.setColor(Color.GREEN);
for(int i=0;i<a.length;i++){
g.drawString("~~~~~", a[i], b[i]);
}
//画头部
g.setColor(Color.GREEN);
g.fillOval(x, y, 70, 100);
//加眼睛
g.setColor(Color.BLACK);
g.fillOval(x+10, y+30, 10, 15);
g.fillOval(x+50, y+30, 10, 15);
//加舌头
g.setColor(Color.RED);
g.fillOval(x+30, y, 8, 6);
//画脚 左上
g.setColor(Color.GRAY);
g.fillOval(k1-85, t1+75, 60, 70);
//右上
g.fillOval(k2+85, t2+75, 60, 70);
//左下
g.fillOval(k3-85, t3+235, 60, 70);
//右下
g.fillOval(k4+85, t4+235, 60, 70);
//加乌龟壳
g.setColor(Color.red);
g.fillOval(x-66, y+66, 200, 230);
//壳加文字
g.setColor(Color.BLUE);
Font font= new Font(Font.DIALOG,Font.BOLD,30);
//Font font =new Font(Font.DIALOG,Font.BOLD,30);
g.setFont(font);
g.drawString("小龟龟", x-10, y+206);
/*
//给画笔设置颜色
g.setColor(Color.RED);
//画矩形
g.drawRect(20, 70, 400, 600);
//画实心
g.drawRect(120, 80, 150, 50);
g.setColor(Color.YELLOW);
//画圆和椭圆
g.drawOval(30, 250, 100, 100);
g.fillOval(130, 300, 100, 100);
//画奥迪
//画线段
g.drawLine(80, 80, 350, 350);
*/
}
//使用方法
@Override
public void mousePressed(MouseEvent e) {
System.out.println("111111111111");
x=e.getX();
y=e.getY();
k1=e.getX();
t1=e.getY();
k2=e.getX();
t2=e.getY();
k3=e.getX();
t3=e.getY();
k4=e.getX();
t4=e.getY();
repaint();//重绘,重复调用paint
}
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("线程启动");
while(true){
for (int i = 0; i < a.length; i++) {
a[i]--;
if(a[i]<0){
a[i]=1400;
}
}
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
repaint();
}
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
冒泡排序
package cn.tedu.day04;
public class Maopaopaixu {
//public static void main(String[] args) {
// int[] arr={5,7,6,44,99,54,59,45,62};
// for(int i=0;i<arr.length;i++){
// for(int j=0;j<arr.length-1-i;j++){
// if(arr[j]>arr[j+1]){
// int tamp=arr[j];
// arr[j]=arr[j+1];
// arr[j+1]=tamp;
// }
//
// }
//
// }
// System.out.println("排序后的数组:");
// for(int i=0;i<arr.length;i++){
// System.out.println(arr[i]);
// }
//
//}
public static void main(String[] args) {
int[] arr=new int[] {74,51,64,8,85,6,54,847};
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int tamp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tamp;
}
}
}
System.out.println("排序后的结果:");
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
}
可以上下左右移动的乌龟
主函数
package cn.tedu.day04;
import javax.swing.JFrame;
/*
* JFrame---窗体-----相框
* JFrame---画布----相片
* 导包:
* 1、手动导包 import...
* 2、自动导包 ctrl+shift+o
* 3、点击红色的叉号
*/
public class TurtlePro {
public static void main(String[] args){
//1、创建一个窗体对象
JFrame frame = new JFrame();
//2、给窗体添加标题
frame.setTitle("小龟龟");
//3、给窗体添加大小
frame.setSize(1400, 800);
//4、窗体居中显示
frame.setLocationRelativeTo(null);
//类名,静态常量, 减少内存占用
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Wugui tj=new Wugui();
//添加画布到面板上
frame.add(tj);
//添加鼠标的监听事件
frame.addMouseListener(tj);
tj.addMouseListener(tj);
//添加键盘的监听事件
frame.addKeyListener(tj);
tj.addKeyListener(tj);
//5、显示窗体
frame.setVisible(true);
}
}
package cn.tedu.day04;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JPanel;
public class Wugui extends JPanel implements KeyListener,MouseListener,Runnable{
/**
*
*/
//头的位置
int x=300;
int y=200;
//脚的初始位置
int k1=300,t1=200;//左上
int k2=300,t2=200;//右上
int k3=300,t3=200;//左下
int k4=300,t4=200;//右下
//Graphics
//加水的波纹
int[] a=new int[300];//300个x坐标
int[] b=new int[300];//300个y坐标
//定义一个方向position==0的时候,乌龟的左上脚和右下脚进行向前移动
int position=0;
//构造方法:方法名和类名:无任何返回值类型,:无参构造
public Wugui(){
//随机产生位置
for (int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*1400);
b[i]=(int)(Math.random()*800);
}
Thread t=new Thread(this);
t.start();
}
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
this.setBackground(Color.cyan);
//画波纹
g.setColor(Color.GREEN);
for(int i=0;i<a.length;i++){
g.drawString("~~~~~", a[i], b[i]);
}
//画头部
g.setColor(Color.GREEN);
g.fillOval(x, y, 70, 100);
//加眼睛
g.setColor(Color.BLACK);
g.fillOval(x+10, y+30, 10, 15);
g.fillOval(x+50, y+30, 10, 15);
//加舌头
g.setColor(Color.RED);
g.fillOval(x+30, y, 8, 6);
//画脚 左上
g.setColor(Color.GRAY);
g.fillOval(k1-85, t1+75, 60, 70);
//右上
g.fillOval(k2+85, t2+75, 60, 70);
//左下
g.fillOval(k3-85, t3+235, 60, 70);
//右下
g.fillOval(k4+85, t4+235, 60, 70);
//加乌龟壳
g.setColor(Color.red);
g.fillOval(x-66, y+66, 200, 230);
//壳加文字
g.setColor(Color.BLUE);
Font font= new Font(Font.DIALOG,Font.BOLD,30);
//Font font =new Font(Font.DIALOG,Font.BOLD,30);
g.setFont(font);
g.drawString("小龟龟", x-10, y+206);
/*
//给画笔设置颜色
g.setColor(Color.RED);
//画矩形
g.drawRect(20, 70, 400, 600);
//画实心
g.drawRect(120, 80, 150, 50);
g.setColor(Color.YELLOW);
//画圆和椭圆
g.drawOval(30, 250, 100, 100);
g.fillOval(130, 300, 100, 100);
//画奥迪
//画线段
g.drawLine(80, 80, 350, 350);
*/
}
//使用方法
@Override
public void mousePressed(MouseEvent e) {
System.out.println("111111111111");
x=e.getX();
y=e.getY();
k1=e.getX();
t1=e.getY();
k2=e.getX();
t2=e.getY();
k3=e.getX();
t3=e.getY();
k4=e.getX();
t4=e.getY();
repaint();//重绘,重复调用paint
}
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("线程启动");
while(true){
for (int i = 0; i < a.length; i++) {
a[i]--;
if(a[i]<0){
a[i]=1400;
}
}
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
repaint();
}
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("点击了按钮。");
if(e.getKeyCode()==KeyEvent.VK_UP){
System.out.println("点击了上方向键!");
y=y-10;
if(position==0){
t1=t1-20;
t4=t4-20;
}
if(position==1){
t2=t2-20;
t3=t3-20;
}
if(t1<t2){
if(x!=k1){
x=k1=k2=k3=k4;
}
position=1;
}
if(t1>=t2){
if(x!=k1){
x=k1=k2=k3=k4;
}
position=0;
}
}
if(e.getKeyCode()==KeyEvent.VK_DOWN){
System.out.println("点击了下方向键!");
y=y+10;
if(position==0){
t1=t1+20;
t4=t4+20;
}
if(position==1){
t2=t2+20;
t3=t3+20;
}
if(t1>t2){
if(x!=k1){
x=k1=k2=k3=k4;
}
position=1;
}
if(t1<=t2){
if(x!=k1){
x=k1=k2=k3=k4;
}
position=0;
}
}
if(e.getKeyCode()==KeyEvent.VK_LEFT){
System.out.println("点击了左方向键!");
x=x-10;
if(position==0){
k1=k1-20;
k4=k4-20;
}
if(position==1){
k2=k2-20;
k3=k3-20;
}
if(k1<k2){
if(y!=t1){
y=t1=t2=t3=t4;
}
position=1;
}
if(k1>=k2){
if(y!=t1){
y=t1=t2=t3=t4;
}
position=0;
}
}
if(e.getKeyCode()==KeyEvent.VK_RIGHT){
System.out.println("点击了右方向键!");
x=x+10;
if(position==0){
k1=k1+20;
k4=k4+20;
}
if(position==1){
k2=k2+20;
k3=k3+20;
}
if(k1>k2){
if(y!=t1){
y=t1=t2=t3=t4;
}
position=1;
}
if(k1<=k2){
if(y!=t1){
y=t1=t2=t3=t4;
}
position=0;
}
}
repaint();
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
数组作为参数,打印出数组的元素
package cn.tedu.day04;
import java.awt.print.Printable;
/*
* 数组作为参数,打印出数组的每一个元素
* 1、有参数有返回值
* 2、有参数无返回值
*/
public class Qiuhe {
public static void main(String[] args) {
int[] arr={5,7,6,8,9};
printArrayAdd(arr);
for(int i = 0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
public static int[] prinArrayAdd(int[] arr){
int[] arr1=arr;
for(int i = 0;i<arr1.length;i++){
arr1[i]+=3;
}
return arr1;
}
private static void printArrayAdd(int[] arr) {
// TODO Auto-generated method stub
Object arr1;
for(int i = 0;i<arr.length;i++){
arr[i]+=3;
//System.out.println(arr[i]);
}
return;
}
// public static void i(){
// System.out.println("数组元素为:"+i);
//}
// private static int[] printArray(int[] arr) {
// // TODO Auto-generated method stub
// return null;
// }
}
方法
package cn.tedu.day04;
/*
* 方法
* 如果方法的参数是基本数据类型,形式参数的改变不是影响实际参数
*/
public class Fangfa {
public static void main(String[] args) {
int x=5;
int y=6;
System.out.println(x+","+y);
add(x,y);
System.out.println(x+","+y);
}
public static void add(int x,int y){
System.out.println(x+","+y);
x=y;
y=x+y;
System.out.println(x+","+y);
}
}
方法
-
1、方法的概念:(函数/过程)
-
封装了一段特定业务逻辑功能
-
尽可能地独立,一个方法只能干一件事
-
方法可以被反复调用;
-
减少代码的重复,有利于后期代码的维护,减少团队开发的成本,提高开发的效率。
-
2、方法的语法范围:
-
修饰词 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…){
-
方法体:(业务逻辑功能的具体实现)
-
return 返回值;
-
}
-
//如果无返回值类型,就没有return返回值
-
解释
-
修饰词:public static
-
返回值类型:用于限定返回值的数据类型;
-
方法名:方便调用方法的名字
-
参数类型:限定调用方法的时候,传入数据的类型;
-
参数名:接收待用方法的时候,传入数据的变量;
-
方法体:
-
return:结束方法,把返回值传回给调用者
-
-
方法的调用:
-
1、单独调用,没有意义
-
2、输出调用,有意义,不够好
-
3、复制调用,推荐使用
-
方法:
-
有参数
-
1)有返回值类型
-
2)无返回值类型
-
无参数
-
1)有返回值类型
-
2)无返回值类型
创建窗体并添加画布
package cn.tedu.day04;
import javax.swing.JFrame;
public class Huaxiaoqiche {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("小汽车");
frame.setSize(1400, 800);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Car tj=new Car();
frame.setVisible(true);
}
}