Java语言的学习与实践2(数组定义类型,数组输出方式,类,对象,方法)

1.收获

今天虽然讲的东西不多,但是今天讲的都是Java语言中的基础部分,基础是很重要的,如果说基础没有打好的话,后面的内容就有可能听不懂了,因为像类,对象,方法以及数组在日后的编写过程中都会大量的应用。尽管在上课的时候,听课很困难,但是一直都是让大脑一直在顺着思路走,听的东西尽管不是理解的那麽的透彻,但是自己下来后再来理解一遍也是没有多大问题的。说实话,经过这两天的学习,慢慢自己就发现其实Java语言没有自己想象中的那磨难,只要自己认真学习与理解,还是能够弄懂的,希望自己在接下来的日子里继续加油!!!

2.技术

(1)数组的两种定义类型以及数组输入的三种方式
(2)类的定义与使用以及与对象的关系
(3)对象的定义与使用
(4)方法的定义与使用
(5)public private protected 的区别
(6)用Java语言编写的猜数字游戏

3.技术的实际应用

(1)数组的两种定义类型以及数组输入的三种方式
在Java语言中,数组的定义类型有两种,静态定义和动态定义
静态定义
例如:

        int[] score={1,2,3};
        String[] names={"jake","merry"};

这种定义方式是在已知数组的内容是什么,然后直接进行赋值
动态定义
例如:

 float[] height=new float[5];
        height[0]=165.5f;
        height[1]=1702f;

这种定义方式是在不知道数组的内容是什么,是后来才知道的,但是知道数组的大小

数组输出的三种方式
//输出数组1

 for(int i=0;i<4;i++){
            System.out.print(number[i]+" ");
        }
        System.out.print("\n");

//输出数组2

for(int temp:number){
            System.out.print(temp+" ");
        }
        System.out.print("\n");

//输出数组3

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

在这三种数组输出的方式中我们常用的是第一种和第三种,在第二种方式中,number是数组,temp是一个变量,将number的每个值赋给temp进行输出。
(2)类的定义与使用以及与对象的关系

  • 类:byte char boolean short int long double float
    Java里面除了8大基本数据类型外 都是对象
    抽象的 不实际存在的 描述同一类事物
    人类:概念 抽象 不能完成具体的事情
    小王:对象
    车子:类
    宝马:对象
    奔驰:对象
    奥迪:对象
    类就是封装
  • 对象
    具体的,实际存在的,某一类的实例化
    对象是new出来的
    可以完成具体的事情,有内存空间的
  • 类的定义与使用
    定义一个类 通常情况下一个文件对应一个类
    修饰符:public static final
    修饰符 class 类名{
    这个类的属性:成员变量
    这个类的功能:方法
    }
    1.存什么值:成员变量
    2.完成什么功能:方法

例如:

class Person {
    //成员变量 定义在类的最上方
    //default public protected
    protected String name;
    int age;
    float score;
    private String password;
}

(3)对象的定义与使用
创建Person类的一个对象
* 使用.来访问成员变量
* 对象一旦创建 属性变量有初值
* char '' int long short 0
* float double 0.0 byte 0
* loolean false
* 引用数据类型:对象类型的变量=null
*/
例如:

        Person xw = new Person();
        Person zs = new Person();

同一个类可以创建多个对象
每个对象的内空间都是独立的 (对象之间没有任何关系)
xw和zs除了都是通过同一个类创建之外
//给这个对象对应的属性赋值

        xw.age = 20;
        xw.name = "小王";
        xw.score = 89.6f;

(4)方法的定义与使用
//方法的定义 public static final private


    public void test() {
        System.out.println("没有返回值 没有参数的方法");
    }
    public void test1() {
        //this.test();
        test();
    }
    **//没有返回值 接受一个参数**
    public void test2(String name) {

    }

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

   ** //有一个返回值 接受多个参数,每个参数用逗号隔开**
    public int test4(String name, int age) {
        return 0;
    }
       ** //可变参数 相当于 数组**
public int test5(int... counts) {
    int sum = 0;
    for (int i = 0; i < counts.length; i++) {
        sum += counts[i];
    }
    return sum;
}

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

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

(5)public private protected 的区别
通过访问权限:public private protected

  • 把私有的东西封装起来 不让外部使用
  • 需要给外部用 就暴露出来
  • public:公共的 想用就用(内可以使用 外部可以使用)
  • private(私用的 只能 自己使用 外部无法访问)
  • protected(受保护的 外部(同一个包)可以调用)
    (6)用Java语言编写的猜数字游戏
    //产生随机数 保存随机数
    //对随机数进行排序
    //保存游戏者输入的4个数
    //对比游戏者与系统的数给游戏者进行提示

int[] number = new int[4];
        //产生随机数 保存随机数
        Random r = new Random();
    for (int i = 0; i < 4; i++) {
        int temp = r.nextInt(10);
        //判断是否重复
        boolean result = contains(number, temp);
        if (result == true) {
            //输入i对应的位置能够得到一个不重复的数字
            i--;
        } else {
            number[i] = temp;
        }
        // for(int j=0;j<i;j++){
        // }
    }
//进行排序
    Arrays.sort(number);
    System.out.print(Arrays.toString(number));

//开始游戏的部分

        while (true) {
            int countA=0;
            int countB=0;
            //提示游戏者输入数数字
            System.out.print("请输入猜测的4个数:");
            //保存输入的数字
            Scanner guss = new Scanner(System.in);
            int[] gussnumber = new int[4];
            for (int i = 0; i < 4; i++) {
                gussnumber[i] = guss.nextInt();
            }
        //对比游戏者与系统的数给游戏者进行提示
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 4; j++) {
                if (number[i] == gussnumber[j]) {
                    if (i == j) {
                        countA++;
                    } else {
                        countB++;
                    }
                }
            }
        }
        if (countA == 4) {
            System.out.println("恭喜通关!");
            break;
        }
        else{
            System.out.println(countA+"A"+countB+"B");
        }
    }
}
    //自己写一个方法实现 判断某个数组里面是否含有某个值
    public static boolean contains(int[] val,int obj){
        for(int i=0;i<val.length;i++){
            if(val[i]==obj){
                //重复了
                return true;
            }
        }
        return false;
    }
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容

  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 1,054评论 0 4
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,222评论 0 2
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,097评论 1 32
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 1,981评论 0 3
  • 早上的朝霞 中午的烈日 晚上的月亮 还有 想我的你
    行思坐忆阅读 92评论 0 0