数组的使用和类与对象的概念

目标

今天学习了如何创建Java语言中的数组,和其使用方式。初步了解了类和对象的概念。然后就是使用Java语句重写之前用C语言写过的两个小程序重新写了一下,尽然程序所用的语句不一样,但是逻辑却也还是那个逻辑,这也能够看到我们学习C语言的必要性和好处,也通过了编写两个程序体验到了Java这门面向对象语言的好处。
数组的两种定义方式和其基本的使用

 class text{
      public static void main(String[] args){
        int[] score={1,2,3};
        float[] height=new float[5];
        String[] names={"jack","merry"};
        height[0]=128.0f;
        Random r=new Random();
        r.nextInt(i:100);
        int[] count = new int [10];
        for(int i = 0; i <10;i++){
            count[i] = r.nextInt(i:100);
        }
    }
}

在Java里面有很多方法是已经定义好的,遍历数组的方法也因此有好几种

        //数组输出方式1也是我们最熟悉一种方式
         for(int i = 0; i <10;i++){
            System.out.print(count[i]+" ");
        }
        //数组输出方式2
        for(int temp:count){
            System.out.print(temp +" ");
        }
        //数组输出方式3使用了toString方法
        System.out.println(Arrays.toString(count));

对象的概念
类:
coutact:【姓名 地址 email 电话号码】8种基本类型:byte char boolean short int long double float
java里面除了8大基本类型之外都是对象
抽象的 不实际存在的 描述同一事物(具有共同的属性和方法)
人类:概念 抽象 不能完成具体的事情
对象:
具体的,实际存在的,某一类的实例化
对象都是创建出来的
可以完成具体的事情,有内存空间的
同一个类可以有多个对象
如何定义一个类
修饰符 class 类名{
这个类的一些属性:成员变量
这个类的功能:方法
}

class Person{
    String name;
    int age;
    float score;
    String password;
    char choice;

    public void texts(){
        System.out.print("哈哈哈");
    }//没有返回值 没有参数的方式

    public void test2(String name){
    }//有一个参数 没有返回值

    public void text3(String name){

    }//有一个返回值 有一个参数

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

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

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

class text2{
    public static void mian(String[] args){
        /*
        创建Person类的一个对象 new
        使用.访问成员变量
        对象一旦创建 属性变量有初值
        */
        Person zs=new Person();
        /*
        同一个类可以创建多个对象
        两个对象之间并无关系
         */
        Person xw=new Person();
        xw.age=10000;
        xw.name="wangba";
        System.out.print(xw.age);
        System.out.print(xw.name);
        /*
        方法的使用
        在类里面可以直接调用这个类的所有资源
        在外部必须通过对象来调用
         */
    }
}

1.存什么值:成员变量
2.完成什么功能:方法
封装:
访问权限:public private protected
public:公共的 想用就用(内部可以用 外部也可以用)
private:私有的 只能自己用 外部无法访问
protected:受保护的 外部(同一个包)可以访问
把私有的东西封装起来 不让外部使用
需要给外部使用,就暴露出来
继承:后面会学到类的继承
多态:

实际应用

猜数字

class text1{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        int[] count=new int[4];
        Random r=new Random();
        for(int i=0;i<4;i++)
        {
            int temp=r.nextInt(10);
            boolean result=coutains(count,temp);
            if(result){
                //确保i对应的位置能够得到一个不重复的数字
                i--;
            }
            else{
                count[i]=temp;
            }
        }
        Arrays.sort(count);
        for(int i=0;i<4;i++){
            System.out.print(count[i]+" ");
        }
        int countA=0,countB=0;
        int[] yourCount=new int[4];
        while(countA!=4){
            System.out.print("请输入数字:");
            for(int i=0;i<4;i++)
            {
                yourCount[i]=scanner.nextInt();
            }
            for(int i=0;i<4;i++)
            {
                boolean result=coutains(yourCount,count[i]);
                if(result==true){
                    int index=indexof(yourCount,count[i]);
                    if(index==i){
                        countA++;
                    }else{
                        countB++;
                    }
                }
            }
            if(countA!=4)
            {
                System.out.print(countA+" A "+countB+" B ");
                countA=0;
                countB=0;
            }
        }
        System.out.print("恭喜!!!!!");
    }
    public static boolean coutains(int[] val,int obj){
        for(int i=0;i<val.length;i++){
            if(val[i]==obj){
                return true;
        }
        }
        return false;
    }
    public static int indexof(int[] val,int obj){
        for(int i=0;i<val.length;i++){
            if(val[i]==obj){
                return i;
            }
        }
        return -1;
    }
}

在这个程序里面我们可以感受到类里面的方法是可以直接调用的比如我们在程序的后面定义的两个方法,它们皆是有多个参数且有返回值得方法。其逻辑和C程序一脉相承。

写在后面

说实话,那个数组和对象在内存里面的表现优点难懂,有一丝丝学习C语言指针时的感觉。可能是堆栈没有具体的概念的关系吧!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,084评论 1 32
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,362评论 0 4
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,209评论 0 2
  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 1,041评论 0 4
  • 保存包含多级索引的透视表到 Excel报错: 原因:保存文件格式为 xls解决方案:把文件格式改为 xls
    万事皆成阅读 869评论 0 0