第三课 分支、数组、类与对象

一、分支与循环

1、分支

        单if 或者if-else 或者if-else if-else。 else if 可以有若干个,具体语法规则如下:

int a = 5;
if(a>4){
    System.out.println("数太大了");
}
else if(a<4){
    System.out.println("数太小了");
}
else{
    System.out.println("没错就是它");
}

        switch语法规则如下。 通常来讲每个case都要有一个break关键字,匹配到某个分支执行相应语句后直接跳出。当某个分支满足后,如果该分支的case后没有break,会依次执行后续所有的case直到遇到第一个break。所以此例子中如果c=1 会输出第一和第二。

int c =5;
switch(c){
    case 1:
        System.out.println("第一");
    case 2:
        System.out.println("第二");
        break;
    case 3:
        System.out.println("第三");
        break;
    default:
        System.out.println("再接再厉");
}

2、循环

        for循环的语法规则如下。对于continue关键字,跳过本次循环,继续执行下一次循环。对于break关键字,直接跳出循环。该例子中本身循环从1-10共十次,但遇到3的倍数跳过,循环到8直接终止,所以只会输出12457。

for(int i=1;i<=10;i++){
    if(i%3==0){
        continue;
    }
    if(i==8){
        break;
    }
    System.out.print(i);   
}

//结果会输出 12457

        while循环语法规则如下。通常来讲使用while进行简单的循环次数时,需要预先定义一个变量进行计数,不要忘记每次对变量自增,即b++,否则会陷入死循环。 

int b = 0;
while(b<5){
    System.out.println(b);
    b++;
}

/*输出
0
1
2
3
4
*/

二、数组

        数组是存储一系列基本数据类型数据的数据结构。

        数组有两种初始化方式。第一种使用{}直接创建,里面的值是固定的。第二种使用new 先为数组分配一个空间,然后通过索引对每一个位置上的元素进行赋值。但无论哪种方式,数组的长度其实都是预先设计好的,是固定的,不能变化。

int[] a = {1, 2, 3};
System.out.println(a[0]);

int[] b = new int[3];
b[0] = 1;
b[1] = 2;
b[2] = 3;
System.out.println(b[0]);

        根据存放数据类型不同数组可划分为若干种,即所有的基本数据类型都可以使用相对应的数组。

double[] c = {0.1, 0.3, 0.5};

String[] d = {"I", "love", "China", "!"};

char[] e = {'A','B','C'};

        由于集合的存在,数组的作用不太大。

三、类和对象

想象这样一个场景,你的家里有一群牦牛,你现在需要对这群牦牛的情况进行管理与记录。虽然这些牦牛每一只都是与众不同的,但是它们会有一些相似的特征。所以为了方便管理,可以把这一群牦牛看成一个整体,由此有了“类”的概念。“类”代表一个类别,可以理解为一个群体,比如牦牛、猫、狗。

刚才说到,虽然这些牦牛每一只都是与众不同的,但是它们会有一些相似的特征,比如说有的牛重,有的牛轻,但是这些牛都有体重;有的牛偏黑色,有的牛偏黄色,但是这些牛都有颜色。等等的一些,每只牛可能都不一样,但是都具有的特征,就称为“属性”。

除此之外,牦牛可以走路,可以吃草。这样对牦牛功能进行描述的事项被称为“方法”。

由此,一个“类”就这样构建完成了。一个“类”就是由“属性”和“方法”组成的。

由于Java“封装”的特性,需要对“类”的属性进行“私有化”,“私有化”体现在需要给“属性”添加“private”这个关键字。(后续会提到什么是封装)。由于“类”的属性“私有化”了,所以除了正常描述功能的“方法”外,(比如牦牛可以走路,可以吃草),还需要为每个“属性”添加get和set方法,从而允许别的“类”能够查看和修改这些“属性”。

现在就是一个比较完整的“类”了,这意味已经定义好了牦牛这个群体。现在就需要去描述每一头与众不同的牦牛了,这一头头的牦牛其实就是一个“对象”,或者说是“类”的一个“实例”。【之所以叫“对象”,是因为这一头头的牦牛,都是真实存在的、可以看得见摸得着、我们能谈论的对象,所以java一些名词都是比较符合实际生活的;而“类”就像之前说的,是一个类别或者说是一个群体,其实是比较抽象的,因为每一头牛是看得见摸得着的,但牛群这个整体其实仅仅是一个抽象的概念。而所谓“实例”,也就是“实际例子”,说白了就是牦牛“类”里面的一个例子,比如说一头“150kg,黑色”的牦牛,就是一个“实例”,也是“对象”,哪个叫法都行】。

那么该如何描述这个所谓的“对象”呢。就需要用到“类”的实例化了。具体实现方式如下,这种方式其实是Java的一种固定写法。

下面来解释一下,这个语句的含义。假设我现在想描述一头“150kg,黑色”的牦牛。首先我得需要知道这是一头牦牛,而不是猫呀、狗呀的。所以我需要找到“Yak”这个“类”,然后找到了这个类,就可以构建我这只牦牛了,想构建这只牦牛我得起个名字告诉别人,这是我的牛,而不是别人的牛。于是有了“Yak yak”。其实叫“Yak 小红”、“Yak 小蓝”都是没什么问题的,只是一般而言习惯了“Yak yak”。(即“对象”名用“类”名的小写)。后面“new”这个关键字,其实就是在告诉大家,这头牦牛是我新进行描述的,不是已经有的。后面的“Yak()”,是“类”的“构造方法”。其实可以和C语言当中的方法对比,C语言需要声明一个函数,并实现这个函数,然后再调用这个函数,才能发挥作用。其实“类”也是一样的,定义“类”,实际上就类比于声明了一个函数,并实现了这个函数;“Yak()”调用类,实际上就是在调用C语言里的一个无参的函数。只是写法有一点区别,所以才有了“Yak yak =new Yak()”这句话,就是我通过调用Yak(),生成了一个新的(new) 实例,把这个实例赋值给Yak“类”的一个“对象”yak。

然后就可以通过“yak.”调用“类”内部定义的“方法”了。比如yak.move()  就是牦牛走路了。

所以Java类这块的步骤就是:

  1. 定义“类”,确定“类”的“属性”以及实现“类”的“方法”。
  2. 通过调用构造函数,生成一个“类”的“对象”。
  3. 通过这个“对象”,调用“类”的“方法”,执行功能。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值