美文网首页
JAVA---数组的使⽤和类的定义

JAVA---数组的使⽤和类的定义

作者: 26小瑜儿 | 来源:发表于2019-08-06 19:50 被阅读0次

1.目的:学会定义类和使用数组。

Java中的基本数据类型:

char bollean short int long flaot double
引用类型:除了上述的所有类型都是引用类型
数组的两种定义:


image.png

数组定义之后再内存中的表现形式:


image.png

遍历数组的三种方式:


            //String[] names = {"jack","merry"};
            //计算器:长什么样子 能做什么 概念 类
            //有一个计算器在手上  具体存在的东西 对象

            Random r = new Random();
            //尽量不要扩大变量的作用域
            //int[] Arrays
            int[] count = new int[10];
            for (int i = 0; i < 10; i++){
                count[i] = r.nextInt(100);
            }

            //数组输出方式1
            for (int i = 0; i < 10; i++){
                System.out.print(count[i]+" ");
            }
            System.out.println();

            //数组输出方式2
            for (int temp: count){
                System.out.print(temp + " ");
            }
            System.out.println();

            //数组输出方式3
            System.out.println(Arrays.toString(count));


        }
    }
用数组实现猜数字游戏:
//自定义控件、消息
class GuessNumber{
    public static void main(String[] args){
        //保存原始数字
        int[] org = new int[4];
        //保存用户猜测的数字
        int[] guess = new int[4];

        //产生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对应的位置能够得到一个不重复的数字
                i--;
            }else{
                org[i] = temp;
            }
        }

        //排序
        Arrays.sort(org);

        System.out.println(Arrays.toString(org));

        //定义一个扫描仪对象Scanner
        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();
            }

            //判断用户输入
            //1.判断是否存在
            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");
            }
        }
    }

    /**
     * 在一个数组里面查找某个对象的索引值
     * @param val 数组
     * @param obj 查找的对象
     * @return 索引值
     */
    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;
    }
}
类与对象

一个类是对一 类对象的描述。
类的声明语法格式:
[public] [abstract | fial] class 类名称[extends父类名称]
[implements接口名称列表]
变量成员声明及初始化方法声明及方法体
说明:

class表明其后声明的是一个类
extends如果所声明的类是从某一父类派生而来那么父类的名字应写在extends之后
implements如果所声明的类要实现某些接口1那么接口的名字应写在implements之后
修饰符可以有多个用来限定类的使用方式
public表明此类为公有类
abstract指明此类为抽象类
final指明此类为终结类对象的创建:
其作用是在内存中为此对象分配内存空间返回对象的引用reference相当于对象的存储地址。数据成员:
数据成员表示Java类的状态。声明数据成员必须给出变量名及其所属的类型同时还可以指定其他特性。在一个类中成员变量名是唯一 的。数据成员的类型可以是Java中任意的数据类型简单类型类接口数组。分为实例变量和类变量。
数据成员的声明格式:
[public I protected I privatel][static][ final]transient] [volatile]变量数据类型变量名1[=变量初值),变量名2[=变量初值, ?;格式说明:
public、protected、 private 为访问控制符;
static指明这是一个静态成员变量 ;
final指明变量的值不能被修改;

定义一个类:
image.png
创建一个对象
image.png

创建对象的内存访问:


image.png
成员方法:


        /*
          方法的使用
          调用谁(哪个对象)的方法
          在类里面可以直接调用自己的方法
          在外部必须通过对象来调用
         */
//        Random random = new Random();
//        random.nextInt();
//
//        Scanner scanner = new Scanner(System.in);
//        scanner.nextInt();

        Person lisi = new Person();
        lisi.test();
        //匿名对象 -> 作为一个参数传递
        int result = lisi.test6(new int[]{1, 2, 3, 4, 5});
        System.out.println(result);
    }
}

/**
 * 定义一个类 通常情况下一个文件对应一个类
 * 修饰符:public static final
 *
 * 修饰符 class 类名{
 *     这个类的一些属性:成员变量
 *     这个类的功能:方法
 * }
 */

/**
 * 1.存什么值 :成员变量
 * 2.完成什么功能:方法
 */
class Person{
    //成员变量 定义在类的最上面
    String name;
    int age;
    float score;
    String password;
    char choice;

    //方法的定义 public static final private
    public void test(){
        System.out.println("没返回值 没参数的方法");
    }

    public void test2(){
        //在自己的类里面可以调用这个类里面的所有资源
        //this.test();
        test();
    }

    //没有返回值 接收一个参数
    public void test3(String name){

    }

    //有一个参数一个返回值
    public int test4(String name){
        return 0;
    }

    //有多个参数 每个参数用逗号隔开
    public int test5(String name, int age){
        return 0;
    }

    //可变参数 相当于 数组
    public int test6(int ... counts){
        int sum = 0;
        for (int i = 0; i < counts.length; i++){
            sum += counts[i];
        }

        return sum;
    }
}

private public protected final static ...的区别:

image.png

感悟:
今天学习了类的定义、数组的使用,特别是关于对象的内存访问以及数组在定义之后在内存中的表现形式让我学到很多 以前对关于内存的知识了解的非常浅,(虽然现在还是非常浅)但是还是学到了不少,就是上课有时候老打瞌睡,还是要好好休息。
宁做老王,不做小王。

相关文章

  • JAVA---数组的使⽤和类的定义

    1.目的:学会定义类和使用数组。 Java中的基本数据类型: char bollean short int lon...

  • array演示

    //Array类是C#中所有数组的基类,它是在System命名空间中定义 //1.方法:Sort(Array):使...

  • js基础加强

    定义类1 调用 定义类2 this指向修改 剩余参数 伪数组转真数组 数组相关 模板字符串定义 set集合去重 O...

  • 杂项 《Scala 开发教程》实验报告

    Scala 基础 定义变量 定义函数 判断 循环 数组 列表 元组 集合 读取文件 异常处理 类和对象 类 对象 ...

  • Swift十二讲 第三章 数组字典函数和闭包 (draft)

    1.数组 数组的定义和一些简单的例子数组是同一类型的东西的有序集合。可以有整数数组,也可以有按钮类的数组。只要是同...

  • java数组

    数组的定义 test.java 对象数组 语法 类名[] 数组名 = new 类名[长度]; 示例 Student...

  • 结构体数组的定义

    结构体数组的定义 1、先定义结构体类型,再定义结构体数组 2、定义结构体类型的同时定义结构体数组 3、省略结构体类...

  • 解开那一层面纱,js类数组的小秘密(下篇)

    前言: 在 解开那一层面纱,js类数组的小秘密(上篇)里面,已经提到类数组的定义,以及常见的类数组类型,类数组的转...

  • 浅谈Java的类加载机制

    类是怎么被加载的 .java--->.class--->二进制字节流--->类加载器--->转换成 java.la...

  • Effective Java(三) 类和接口

    类和接口 Tip-13 使类和成员的可访问性最小化 尽可能地使每个类或者成员不被外界访问 注意:长度非0的数组总是...

网友评论

      本文标题:JAVA---数组的使⽤和类的定义

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