自学java的第六天

二维数组

初始化遍历和默认初始值

二维数组其实和一维数组差不多,二维数组外层是索引(好像不太对,不过我就是这样理解的),就是在堆空间里开辟了对应的空间,之后对应的空间又开辟了空间存储内容。

二维数组的初始化:数据类型[][] 变量名 = {{数据},{数据}};

public class index {
    public static void main(String[] args) {
        int[][] arr = {{1,2,3},{4,5,6}};
    }
}

 遍历:

public class index {
    public static void main(String[] args) {
        int[][] arr = {{1,2,3},{4,5,6}};

        //外层循环,有几对数组就循环几次
        for (int i = 0; i < arr.length; i++) {
            //内层循环得到没对数组里面的内容
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
        }
        //结果为1 2 3 4 5 6 
    }
}

二维数组的动态初始化:

public class index {
    public static void main(String[] args) {
        int[][] arr = new int[2][3];
    }

这里定义了两对数组,每对存储3个数据。这时候因为没有赋值,数据类型为int所以和一维数组一样,如果进行遍历会输出默认值为0,但是如果内层没写的话,遍历输出就会报错,没有默认值,因为空间没开辟会爆NullPointerException的异常。但是,如果访问外层会输出null,这是因为外层开辟了空间,但是没有数据,数组又是引用数据类型所以为null。

二维数组练习

杨辉三角:

public class index {
    public static void main(String[] args) {
        //初始化数组
        int[][] arr = new int[10][];
        for (int i = 0; i < arr.length; i++) {
            //内层的每个数组的初始化
            arr[i] = new int[i + 1];
            //每一行第一个为1
            arr[i][0] = 1;
            //每一行最后一个为1
            arr[i][arr[i].length - 1] = 1;
        }
        //从每行的第二个元素开始
        for (int i = 0; i < arr.length; i++) {
            for (int i1 = 1; i1 < arr[i].length - 1; i1++) {
                arr[i][i1] = arr[i - 1][i1 - 1] + arr[i - 1][i1];
            }
        }
        //遍历数组
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
}

面向对象

如何定义类对象格式:

class Person {
    String name;
    int age;
    char gender;

    public void show(){
        System.out.println("吃饭");
    }
}

这就是一个简单的Person类对象,里面描述了名字,年龄,性别,行为。

在定义一个类时,里面包括着属性和方法(行为),一般属性是对类的大致描述,方法是类做出的行为。

在使用对象时的步骤:

(1)创建类对象,初始化属性和方法

(2)实例化对象

(3)通过对象.属性或者对象.方法实现目标需求

局部变量和全局变量

定义在类中方法外的对象叫做全局变量,全局变量在该类中的任何地方都可以访问。局部变量是定义在方法中的变量,方法外不可访问使用。那么什么是方法呢,方法就是对类的行为的描述。

方法

格式为:权限修饰符  有无返回值  方法名(){方法体};

例如:

class Person {
    String name;
    int age;
    char gender;

    public void show(){
        System.out.println(gender);
    }
}
public class Test {
    public static void main(String[] args) {
        //实例化
        Person p = new Person();
        //赋值
        p.name = "小飞";
        p.age = 10;
        p.gender = '男';
        //访问
        System.out.println(p.name);
        System.out.println(p.age);
        //调用方法
        p.show();
    }
}

这里先了解一下权限修饰符:private,缺省,protected,public

方法是可以带参数的:方法内的参数为形式参数,调用传过来的参数为实际参数。

例如:

class Person {
    String name;
    int age;
    char gender;

    public void show(){
        System.out.println(gender);
    }
    public void age(int newAge){
        age = newAge;
    }
}
public class Test {
    public static void main(String[] args) {
        //实例化
        Person p = new Person();
        //赋值
        p.name = "小飞";
        p.age = 10;
        p.gender = '男';
        //访问
        System.out.println(p.name);
        System.out.println(p.age);
        //调用方法
        p.show();
        p.age(19);
        //输出为19
        System.out.println(p.age);
    }
}

注意:传入的实际参数的数据类型要和形式参数的数据类型保持一致。

可以在一个方法里面调用另外一个方法,因为方法是在实例化时就存储在方法区里面的,用了就调,不用就不调,没有顺序一说。

方法分为有返回值的和无返回值的,上面的方法都是没有返回值的,在我们需要使用方法内处理的数据时,就要使用带返回值的方法,用return 返回值,注意return后面数据的数据类型要和返回值的数据类型一致。

例如:

class Person {
    String name;
    int age;
    char gender;
    public int age(int newAge){
        age = newAge;
        return age;
    }
}
public class Test {
    public static void main(String[] args) {
        //实例化
        Person p = new Person();
        //调用方法age,传入年龄并接受返回值
        int age = p.age(18);
        //打印返回值
        System.out.println(age);
    }
}

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值