美文网首页
DAY8Java语言入门基础教学2+猜数字游戏的Java实现

DAY8Java语言入门基础教学2+猜数字游戏的Java实现

作者: 辞cccc | 来源:发表于2019-08-06 20:56 被阅读0次

    Java入门教学2

    输出

    1. for循环

    for(int i = 0; i < 10; i++){
    System.out.print(count[i] + " ");
    }
    

    2. for each

    for(int temp :count){
    System.out.print(temp + " ");
    }
    

    foreach格式为
    for(元素类型type 元素变量x : 遍历对象obj)
    {
    引用了x的java语句;
    }
    在java中的语法:for(type x : collection)
    {
    }//在collection中遍历每一个对象,对象是type类型的x

    3. Arrays类中的toString

    System.out.print(Arrays.toString(count));

    什么是类

    类是一种用户定义类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。

    什么是对象

    对象是类的一个实例。

    对象与类的区别

    • 类 java里面除了八大数据类型之外 都是对象
      抽象的 不实际存在的 描述同一类事物(具有共同的属性和方法)
    • 对象 具体的 实际存在的 某一类的实例化
      对象都是new出来的,可以完成具体的事情,有内存空间
      同一个类可以有多个对象

    定义一个类

    类名首字母必须大写 通常情况下一个文件对应一个类
    修饰符public static final private

    修饰符 class 类名{
        这个类的一些属性:成员变量
        这个类的功能: 方法
    }
    
    1. 存什么值:成员变量 通常定义在类的最上面
      String name;
      float score;
    2. 完成什么功能:方法

    封装中三种访问权限的区别

    封装:把私有的东西封装起来 不让外部使用,需要给外部使用,就暴露出来。

    • public:公共的 想用就用 内外部通用
    • private:私有的 只能自己使用 外部无法访问
    • protected:受保护的 外部(同一个包)可以访问

    八大数据类型的初始值

    kind default
    char /u0000
    int 0
    long 0
    short 0
    float 0.0
    double 0.0
    byte 0
    boolean false

    PS:引用数据类型:对象类型的变量 = null

    方法

    方法的定义

    public static final private

    方法的调用

    调用谁(哪个对象)的方法
    在类里面可以直接调用自己的方法 在自己的类里面可以调用这个类里面的所有资源
    在外部必须通过对象来调用

    1. 一个参数没有返回值
      public void test(String name){}
    2. 一个参数一个返回值
    public int test(String name){
    return 0;
    }
    
    1. 多个参数一个返回值 参数用逗号隔开
    public int test(String name,int age){
    return 0;
    }
    
    1. 可变参数
    public int test(int ... counts){
        int sum;
        for (int i = 0 ; i < counts.length ; i++){
            sum +=counts[i];
        }
    }
    

    猜数字游戏

    对比C语言

    class GuessNumber{
        public static void main(String[] args){
            int[] org = new int[4];
            int[] guess = new int[4];
    
            Random random = new Random();
            for (int i = 0; i < 4; i++){
                int temp = random.nextInt(10);
                boolean result = contains(org, temp);
    
                if (result){
                    i--;
                }else{
                    org[i] = temp;
                }
            }
            Arrays.sort(org);  
            System.out.println(Arrays.toString(org));
            Scanner scanner = new Scanner(System.in);
            while(true){
                int countA = 0;
                int countB = 0;
                System.out.print("请输入猜测的数字:");
                for (int i = 0; i < 4;i++){
                    guess[i] = scanner.nextInt();
                }
                for (int i = 0; i < 4; i++) {
                    boolean result =contains(guess, org[i]);
                    if(result == true){
                        int index = indexOf(guess, org[i]);
                        System.out.println("i:"+i+" index:"+index);
                        if (index == i){
                            countA++;
                        } else{
                            countB++;
                        }
                    }
                }
    
                if (countA == 4){
                    System.out.println("恭喜全对!");
                    break;
                }else{
                    System.out.println(countA+"A"+countB+"B");
                }
            }
        }
        public static int indexOf(int[] val, int obj){
            for (int i = 0; i < val.length; i++){
                if (val[i] == obj){
                    return i;
                }
            }
            return -1;
        }
        public static boolean contains(int[] val, int obj){
            for (int i = 0; i < val.length; i++){
                if (val[i] == obj){
                    return true;
                }
            }
            return false;
        }
    }
    

    体会

    今天是进入Java学习的第二天,重新做了关于猜数字的demo,有一丢丢不知所云,尤其是关于栈和堆的地方。下来看了看head first java感觉要清晰一点了。关于方法的创建和使用还是不是很会。在此批评6711,中午瞎跑害我找她一中午没睡午觉下午困了一下午o(TヘTo)

    相关文章

      网友评论

          本文标题:DAY8Java语言入门基础教学2+猜数字游戏的Java实现

          本文链接:https://www.haomeiwen.com/subject/sgqgdctx.html