大数据笔记5/9

方法

1.方法的概念:(函数/过程)

  • 封装了一段特定业务逻辑功能

    尽可能的独立,一个方法只让干一件事

    方法可以被反复地重复的调用

    减少代码的重复,有利于代码的维护,减少团队开发的成本,提高开发的效率

2.方法的语法规范:

修饰词 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,…){

​ 方法体;//业务逻辑功能的具体实现

​ return 返回值;

}

//如果无返回值类型,就没有return返回值;

解释:

  • 修饰词:public static
  • 返回值类型:用于限定返回值的数据类型;
  • 方法名:方便调用方法的名字
  • 参数类型:限定调用方法时,传入数据的类型
  • 参数名:接收调用方法时,传入数据的变量
  • 方法体
  • return:结束方法,把返回值传回给调用者
  • 实际参数:如果参数的类型是引用数据类型,形式参数的改变会影响实际参数的改变
  • 如果方法的参数是基本数据类型,形式参数的改变不会影响实际参数的改变

方法的调用:

  1. 单独调用,没有意义
  2. 输出调用,有意义,不够好
  3. 赋值调用,推荐方式
继昨天画乌龟

加入用键盘让乌龟动起来的JAVA语句

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 java.util.ArrayList;
import java.util.EventListener;

import javax.swing.JPanel;
import javax.swing.event.MouseInputListener;

public class TJPanel1 extends JPanel implements KeyListener,MouseListener,Runnable{
	int x = 600;
	int y = 600;
	int state = 1;
	//脚
	int k1 = 600, t1 = 600;//左上
	int k2 = 600, t2 = 600;//右上
	int k3 = 600, t3 = 600;//左下
	int k4 = 600, t4 = 600;//右下
	
	//加水的波纹
	int[] a = new int[400];//300个x坐标
	int[] b = new int[400];//300个y坐标
	
	//泡泡
	int[] c = new int[400];//300个x坐标
	int[] d = new int[400];//300个y坐标
	
	
	//定义一个方向position
	//当position==0的时候,乌龟左上脚和右下脚进行向前移动
	int position = 0;
	
	//构造方法:方法名和类同名;无任何返回值类型;无参构造
	public TJPanel1(){
		//随机产生位置
		for (int i = 0; i < a.length; i++) {
			a[i] = (int) (Math.random()*100000);
			b[i] = (int) (Math.random()*800);
		}
		for (int i = 0; i < c.length; i++) {
			c[i] = (int) (Math.random()*5);
			d[i] = (int) (Math.random()*5);
			
		}
		Thread t = new Thread(this);
		t.start();//启动线程
	}

	//Graphics	g:画笔
	@Override//输入paint 然后按 alt+o
	public void paint(Graphics g) {
		super.paint(g);
		if (state == 1) {
		//修改底部背景色
		this.setBackground(Color.CYAN);
		//给画笔设置颜色
		//g.setColor(Color.YELLOW);
		//画矩形
		//g.drawRect(60, 20, 210, 260);
		//画实心矩形
		//g.fillRect(80, 50, 150, 130);
		//画圆或椭圆
		//g.drawOval(80, 40, 100, 100);
		//画实心圆或椭圆
		g.setColor(Color.white);
		for (int i = 0; i < c.length; i++) {
			g.fillOval(a[i], b[i], 20, 80);
			boolean judge = hit(a[i], b[i], x, y);
			if (judge == true) {
				state = 2;
			}
		}
		//g.setColor(Color.BLACK);
		//画线段
		//g.drawLine(80, 80, 150, 300);
		//奥迪车标
		//g.drawOval(50, 40, 80, 80);
		//g.drawOval(110, 40, 80, 80);
		//g.drawOval(170, 40, 80, 80);
		//g.drawOval(230, 40, 80, 80);
//		int x = 150;
//		int y = 40;
		
		//画波纹
/*		g.setColor(Color.BLUE);
		for (int i = 0; i < a.length; i++) {
			g.drawString("~~~~~~~~", a[i], b[i]);
		}
*/		
		g.setColor(Color.green);
		g.fillOval(x, y, 50, 80);
		
		//加眼睛
		g.setColor(Color.black);
		g.fillOval(x+10, y+20, 8, 15);
		g.fillOval(x+30, y+20, 8, 15);
		
		//加舌头
		g.setColor(Color.red);
		g.fillOval(x+20, y, 8, 8);
		
		//加脚
		g.setColor(Color.GREEN);
		//左上
		g.fillOval(k1-30, t1+40, 30, 50);
		//左下
		g.fillOval(k3-30, t3+130, 30, 50);
		//右上
		g.fillOval(k2+50, t2+40, 30, 50);
		//右下
		g.fillOval(k4+50, t4+130, 30, 50);
		
		//加乌龟壳
		g.setColor(Color.ORANGE);
		g.fillOval(x-30, y+40, 110, 130);
		
		//壳加文字
		g.setColor(Color.RED);
		//设置字体大小
		Font font = new Font(Font.DIALOG, Font.BOLD, 14);
		g.setFont(font);
		g.drawString("忍者神龟", x, y+105);
		
		}else{
			Font font = new Font(Font.DIALOG, Font.BOLD, 80);
			g.setFont(font);
			g.drawString("失败", x, y+105);
		}
	}
	
	public boolean hit(int a, int b, int c, int d){
		boolean crash = false;
		if(c < a && a - d < 100 && c + 100 >a){
			crash = true;
		}
		return crash;
	}

	@Override
	public void keyTyped(KeyEvent e) {
		// TODO Auto-generated method stub
		
	}
	@Override
	public void keyPressed(KeyEvent e) {
		// TODO Auto-generated method stub
//		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 = 0;
			}
			if (t1 >= t2) {
				if (x != k1) {
					x = k1 = k2 = k3 = k4;
				}
				position = 1;
			}
		}
 		if (e.getKeyCode() == KeyEvent.VK_LEFT) {
			//System.out.println("点击了左方向键");
			x = x - 10;
			if (position == 0) {
				k1 = k1 - 20;
				k3 = k3 - 20;
			}
			if (position == 1){
				k2 = k2 - 20;
				k4 = k4 - 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;
				k3 = k3 + 20;
			}
			if (position == 1){
				k2 = k2 + 20;
				k4 = k4 + 20;
			}
			if (k1 < k2) {
				if (y != t1) {
					y = t1 = t2 = t3 = t4;
				}
				position = 0;
			}
			if (k1 >= k2) {
				if (y != t1) {
					y = t1 = t2 = t3 = t4;
				}
				position = 1;
			}
		}
		repaint();
	}
	@Override
	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub
	/*	if (e.getKeyCode() == KeyEvent.VK_UP) {
			//System.out.println("点击了上方向键");
			
		}
		if (e.getKeyCode() == KeyEvent.VK_DOWN) {
			//System.out.println("点击了下方向键");
		}
		if (e.getKeyCode() == KeyEvent.VK_LEFT) {
			//System.out.println("点击了左方向键");
		}
		if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
			//System.out.println("点击了右方向键");
		}
	*/
	}
	@Override
	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	//使用方法
	@Override
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		//System.out.println("11111");
		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 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 run() {
		//System.out.println("11111");
		while (true) {
			for (int i = 0; i < b.length; i++) {
				b[i]++;
				if (b[i] > 1000) {
					b[i] = -50;
				}
			}
			
			
			try {
				Thread.sleep(3);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			repaint();
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值