day3

package day2;

import javax.swing.JFrame;
/**
 * JFrame---窗体---相框
 * JPanel---画布---相片
 * 导包:
 * 1.手动导包       import...
 * 2.自动导包       Ctrl+shift+o
 * 3.点击红色的叉号
 * @author Administrator
 *
 */
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);
        
        //画布
        TJPanel tj = new TJPanel();
        //添加画布到画板上
        frame.add(tj);
        
        //添加鼠标的监听事件
        frame.addMouseListener(tj);
        tj.addMouseListener(tj);
        
        //5.显示窗体
        frame.setVisible(true);
        
        
        
    }

}

package day2;

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 TJPanel 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;//右下
    
    //加水的波纹
    int[]a = new int[300];//300个x坐标
    int[]b = new int[300];//300个y坐标
    
    //构造方法:方法名和类同名:无任何返回值类型:无参构造
    public TJPanel(){
        //随机产生位置
        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();//启动线程
    }
    //Graphics g:画笔
    @Override
    public void paint(Graphics g) {
        // TODO Auto-generated method stub
        super.paint(g);
        //修改底部背景颜色
        this.setBackground(Color.cyan);
    /*    //给画笔设置颜色
        g.setColor(Color.RED);
        //画矩形
        g.drawRect(20, 150, 400, 200);
        //画实心
        g.fillRect(120, 200, 160, 80);
        //画圆
        g.drawOval(30, 250, 100, 80);
        g.fillOval(130,300,100,100);
        
        //画奥迪车标
        g.drawOval(50,60,70,70);
        g.drawOval(100,60,70,70);
        g.drawOval(150,60,70,70);
        g.drawOval(200,60,70,70);
        //画线段
        g.drawLine(80, 80, 300, 350);
    */
    //画波纹
        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, 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.GREEN);
    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(k3 + 85 , t3 + 235, 60, 70);
    
    //加乌龟壳
        g.setColor(Color.ORANGE);
        g.fillOval(x - 66, y + 69, 200, 250);
        
    //壳加文字
        g.setColor(Color.BLUE);
    //设置字体的大小
        Font font  = new Font(Font.DIALOG,Font.BOLD,30);
        g.setFont(font);
        g.drawString("靳    洁",x - 20,y + 180);
    }
    @Override
    public void keyTyped(KeyEvent e) {
        // TODO Auto-generated method stub
        
    }
    @Override
    public void keyPressed(KeyEvent e) {
        // TODO Auto-generated method stub
        
    }
    @Override
    public void keyReleased(KeyEvent e) {
        // TODO Auto-generated method stub
        
    }
    @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("1111111");
        //ctrl+alt+下键
        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() {
        // 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();
    }
}
}

package day3;
/**
 * 冒泡排序:
 * 1.声明一个数组,存放8个元素;
 * @author Administrator
 *
 */
public class OperatorDemo23 {
    
    
    
    public static void main(String[] args) {
        bubbleSorted();
    }
    public static void bubbleSorted(){
        int []arr = {15,3,4,6,2,90,123,1};
        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 temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                    
                    
                }
            }
        }
        System.out.println("排序后数组:");
        for(int i = 0;i < arr.length;i++){
            System.out.println(arr[i]);
        }
    }

}    

package day3;
/**
 * 数组越界异常
 * 
 * 空指针异常
 *访问了数组中不存在的索引
 * NullPointerException
 * 数组的引用没有指向对象,但是却在操作对象中的元素。
 * @author Administrator
 *
 */
public class OperatorDemo22 {
    
    public static void main(String[] args) {
        
        int[] arr = {1,3,5};
        //访问数组中的元素
        //System.out.println(arr[3]);
        try{
        arr = null;
        System.out.println(arr[1]);
        }catch(NullPointerException e){
            System.out.println("发生了空指针异常");
        }catch(Exception e){
            e.printStackTrace();
        }
        System.out.println("1234");
        System.out.println("1234");
        System.out.println("1234");
    }

}

package day3;

import java.util.Scanner;

/**
 * 数组的应用:
 * 
 * 身份证案例
 * 
 * @author Administrator
 *
 */


public class OperatorDemo21 {
    
    public static void main(String[]args){
        
        //身份证的前17位----用户输入
        int card[] = new int[17];
        //1-17对应的系数
        int data[] = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
        //身份证的最后一位系数
        char[] code = {'1','0','x','9','8','7','6','5','4','3','2'};
        Scanner sc = new Scanner(System.in);
        int sum = 0;
        for(int i = 0;i < card.length;i++){
            
            System.out.println("请输入身份证前17位:");
            card[i] = sc.nextInt();
        }
        for(int i = 0;i < card.length;i++){
            sum += card[i] * data[i];
        }
        System.out.println("最后一位:" + code[sum % 11]);
    }

}

package day3;
/**
 * s 数组
 * 数组的初始化:
 * 必须先初始化,后使用
 * 初始化:数组中的数组元素进行分配内存空间,并且为每一个数组元素进行赋值
 * 
 * 两种:
 * 1.动态初始化:初始化的时候,只指定数组的长度,由系统来为数组分配初始值;
 * 2.静态初始化:初始化的时候,指定了每一个数组元素的初始化的值,由系统来决定数组的长度;
 * 
 * Java中的内存分配
 * 栈:
 * 存储的是局部变量;
 * 局部变量就是定义在方法中的变量;
 * 使用完毕之后就会被释放,立即回收;
 * 
 * 堆:
 * 存储的就是new出来的对象:实体;
 * 每一个对象都是有地址值的;
 * 每一个对象的数据都是有默认值的;
 *         byte,short,,long--0
 *         float,double-------0.0
 *         char-----------‘u0000’
 *         Boolean----------false
 *         引用类型-----------null
 * 使用完毕之后,会在垃圾回收起空闲的时候,被回收。
 * 
 * 方法区:
 * 本地方法:(和系统有关系)
 * 寄存器:(给cpu使用的)
 * @author Administrator
 *
 */

public class OperatorDemo20 {
    
    public static void main(String[]args){
        
        //数组的初始化:
        int[] arr = new int[6];//0,0,0,0,0,0
        arr[0] = 1;//1,0,0,0,0,0
        //静态初始化
        int[] arr1 = {1,3,5};
        
        int[] arr3;
        //arr3 = {1,3,4};//错误的
        arr3 = new int[]{1,3,4};//正确的
        System.out.println(arr3[1]);
        
        for(int i = 0;i < arr3.length;i++){
            System.out.println(arr3[i]);
        }
    }

}
 

package day3;
/**
 * 使用do-while完成猜数字的游戏
 * @author Administrator
 *
 */
import java.util.Scanner;
public class OperatorDemo19 {
    
    public static void main(String[]args){
        
        Scanner sc = new Scanner(System.in);
        int num = (int)(Math.random()*1000+1);
        System.out.println("请输入猜的数字:");
        int guess = sc.nextInt();
        do{
            if(guess > num){
                System.out.println("猜大了");
            }else{
                System.out.println("猜小了");
            }
            System.out.println("继续猜");
            guess = sc.nextInt();
        }while(guess != num);
        if(guess == num){
            System.out.println("恭喜你猜对了");
        }
    }
    
        

}
 

你可能感兴趣的:(day3)