美文网首页
Java学习---数组的定义和类的使用

Java学习---数组的定义和类的使用

作者: 凌云struggle | 来源:发表于2019-08-06 22:25 被阅读0次

一、学习目的

  通过今天的学习来掌握数组的定义方式和基本使用,感受与C语言数组中的异同,以及初步认识类与对象的概念,如何创建一个对象,类里面如何定义变量和方法和理解创建对象的内存表现。

二、数组的定义相关

1. 数组的两种定义方式(静态和动态)

//引用类型:除char short int float long double byte以外都是引用类型
        //数组一但被定义  大小就确定了 无法更改
        //静态
        int[] score = {1,2,3};
        String[] names = {"jack","marry"};

        //动态 内容动态添加
        float[] height = new float[5];
        height[0] = 180.0f;
        height[1] = 170f;

2. 数组定义之后在内存中的表现形式

表现形式

3. 数组的基本使用

        Random r = new Random();
        int num = r.nextInt(100);

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

4. 遍历数组的3种方式

  • for循环,关注元素是第几个

  • foreach快速循环,不关注元素是第几个

  • Arrays.toString(数组名),主要用于测试

         //数组的遍历
        //数组输出方式1  关注第几个
        for (int i = 0;i < 10;i++){
            System.out.print(count[i]+" ");
        }
        System.out.print("\n");


        //数组输出方式2  快速循环 不关注第几个
        for (int temp:count
             ) {
            System.out.print(temp+" ");
        }
        System.out.print("\n");

        //数组输出方式3  用来测试
        System.out.println(Arrays.toString(count));
        System.out.print("\n");

5. 猜数游戏(Java实现)

主程序代码:
class GuessNumber{
    public static void main(String[] args){
        //定义一个数组
        int[] originalArray = new int[4];
        //保存用户输入的猜测数字
        int[] guessArray = new int[4];

        //产生4个随机数
        Random random = new Random();
        for (int i = 0;i < 4;i++){
            //产生1个随机数
            int temp = random.nextInt(10);


            //判断是否存在
            boolean result = contains(originalArray,temp);
            if (result){
                //确保i对应的位置能够得到一个不重复的数字
                i--;
            }else{
                originalArray[i] = temp;
            }
        }

        //排序
        Arrays.sort(originalArray);

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

        //定义一个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++){
                guessArray[i] = scanner.nextInt();
            }

            //判断用户输入
            //1.判断是否存在        2.位置是否相同
            for (int i = 0;i <4;i++){
                boolean result = contains(guessArray,originalArray[i]);
                if (result){
                    //数字存在
                    //判断位置是否相同
                    int index = indexOf(guessArray,originalArray[i]);
                    if (index == i){
                        //数字位置都相同
                        countA++;
                    }else{
                        countB++;
                    }
                }
            }
            if (countA == 4){
                System.out.println("Congratulations!!");
                break;
            }else{
                System.out.println(countA+"A"+countB+"B");
            }
        }


    }



在一个数组里面查找某个值的索引值:
/**
     * 在一个数组里面查找某个值的索引值
     * @param var 数组
     * @param obj  查找的对象
     * @return  索引值
     */
    public static int indexOf(int[] var,int obj){
        for (int i = 0;i < var.length;i++){
            if (var[i] == obj){
                return i;
            }
        }
        return  -1;
    }
自己写一个方法判断一个数组是否包含某个值:
 //自己写一个方法判断一个数组是否包含某个值
    public static boolean contains(int[] var,int obj){
        for (int i = 0;i < var.length;i++){
            if (var[i] == obj){
                //重复了
                return true;
            }
        }
        return false;
    }
}

三、类的使用

Java  OOP:object oriented programming面向对象编程

1. 类和对象的概念

类:java里面除了8大基本数据类型之外 都是对象,是抽象的,不实际存在的,用来描述同一类事物(具有共同的属性 或者方法)
一般来说,类是由数据成员和函数成员封装而成
对象:具体的 实际存在的 某一个类的实例化,且对象都是new出来的,可以完成具体的事情;同一个类可以有多个对象

2. 类的定义


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

 }



class Person{
    //成员变量  通常定义在类的最上方
    //default:
    public String name;
    public int age;
    public float score;
    private String password;
    public char choice;

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

3.对象的创建

  • 对象一旦创建 属性变量有初始值

char ' '    int long short byte 0
float double 0.0
boolean false
引用数据类型:对象类型的变量 = null

 /*
        创建Person类的一个对象
        使用.访问成员变量
       
         */
        Person xw = new Person();
        Person zs = new Person();

        /*
        同一个类可以创建多个对象
        每个对象的内存空间都是独立的(对象之间没有任何关系)
        xw和zs除了都是同一个类创建的之外  没有任何关系
        对xw属性的操作 不会影响zs
         */
        //给这个对象对应的属性赋值
        //方法区->堆->栈
        xw.name = "小王";
        xw.age = 20;
        xw.score = 86.5f;

        System.out.println(xw.name);
        System.out.println(xw.age);
        System.out.println(xw.score);

4. 创建的对象的内存表现

image.png

5. 成员方法的声明和访问以及使用

方法的使用:
调用谁(那个对象)的方法
在类里面可以直接调用自己的方法
在外部必须通过对象来调用

//方法的定义 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){
        return 0;
    }




    //可变参数   相当于  数组
    public int test6(int ... counts){
        int sum = 0;
        for (int i = 0;i < counts.length;i++){
            sum += counts[i];
        }
        return sum;
    }
//调用test6
       Person lisi = new Person();
        lisi.test();
        //匿名对象 ->作为一个参数传递
        int result = lisi.test6(new int[]{1, 2, 3, 4, 5});
        System.out.println(result);


6. Java语言三大特点

封装:
把私有的东西封装起来 不让外部使用
需要给外部使用 就暴露出来
访问权限:public private protected
public:公共的 内部可以用,外部也可以用
private:私有的 只能自己使用 外部无法访问 子类无法继承
protected:受保护的 外部(同一个包里面)可以访问

继承:
是指一个对象直接使用另一个对象的属性和方法

多态:
一个对外接口,多个内在实现方法

四、心得体会

  通过这次的学习,对Java类与对象的概念有了更深层次的理解,也从内存管理的方式上了解其储存方式,总而言之,收获满满,但仍需努力!

相关文章

  • Java学习---数组的定义和类的使用

    一、学习目的   通过今天的学习来掌握数组的定义方式和基本使用,感受与C语言数组中的异同,以及初步认识类与对象的概...

  • Java中各种关键字(一)

    transient 在关于java的集合类的学习中,我们发现ArrayList类和Vector类都是使用数组实现的...

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

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

  • Java泛型与Kotlin泛型

    Java泛型 学习并掌握泛型类和泛型接口定义和使用 学习并掌握泛型函数的定义和使用 很清晰明了的使用教程 Kotl...

  • Java数组的定义和使用

    如果希望保存一组有相同类型的数据,可以使用数组。数组的定义和内存分配Java 中定义数组的语法有两种:type a...

  • Kotlin数组

    数组在Kotlin中使用Array类来表示。下面巴拉一下Kotlin数组和Java数组的区别。Java中的数组通常...

  • java数组

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

  • 【骚全带你学Java---十、数组:Arrays(数组工具类)】

    上一章我们学习了数组的定义声明以及使用,本章学习的是JDK为我们提供的一个数组工具类 Arrays(数组工具类) ...

  • 2018-12-04 今日小结

    今日学习内容 Java方法定义、有无参数/返回值方法定义与使用、方法重载。Java类与对象的定义、类的构造方法。C...

  • JAVA入门的进一步加深

    学习目的 深入了解Java语言里面的类、对象、数组的三种输出方式、属性、方法。 相关技术、及其使用 类和对象类:一...

网友评论

      本文标题:Java学习---数组的定义和类的使用

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