萌新学Java之java入门四

二维数组

保存多个相同数据类型的一维数组

//声明一个二维数组

int[][] array = new int[2][3];

//声明了一个 有两个一维数组并且每个一维数组有三个元素的 二维数组

System.out.println(array.length);
//二维数组的长度 打印的是 有几个一维数组

    //声明时直接把元素声明出来
    //1,2,3  4,5,6
    int[][] brr = {
        {1, 2, 3},
        {4, 5, 6}
    };
    System.out.println(brr);

    //取出的是二维数组中的第1个元素(是个一维数组)
    System.out.println(brr[0].length);

    System.out.println(brr[0][1]);
    //取出二维数组中的第一个元素(一维数组)中的第二个元素 2

    for (int i = 0; i < brr.length; i++) {
        for (int j = 0; j < brr[0].length; j++) {
//  System.out.print(brr[i][j]);
        }
//  System.out.println();
        System.out.println(Arrays.toString(brr[i]));

三维数组

保存多个相同数据类型的二维数组

//声明三维数组
//有两个二维数组
//每个二维数组有三个一维数组
//每个一维数组有4个元素
int [][][] array3 = new int[2][3][4];
//声明有元素的三维数组 223
//描述多维数组的例子: 羊肉串
int [][][] brr3 = {
{
{1, 2, 3},
{4, 5, 6}
},
{
{7, 8, 9},
{10, 11, 12}
}
};

    //遍历三维数组(剥皮)
    for (int i = 0; i < brr3.length; i++) {
        for (int j = 0; j < brr3[i].length; j++) {
            for (int k = 0; k < brr3[i][j].length; k++) {
                System.out.print(brr3[i][j][k]);
            }
            System.out.println();
        }
    }

面向对象和过程

面向过程

  强调的是过程 过程执行者

挑选电脑
1.CPU i5 i7 i9
2.显卡 七彩虹 影驰
3.主板 华硕
4.内存 ddr4
5.硬盘 512G
控制预算

面向对象

强调的是对象 对象指挥者
找一个懂电脑的来挑选 

优势:
1.懒人思维(更贴近人的思维)
2.将复杂的问题 简单化
3.从事物的执行者 转变成 事物的指挥者


类和对象

java中最基本的单位 就是类
类: 对抽象事物的描述(模板)
对象: 对抽象事物的 具体描述(利用类创造出来具体事物)
如何描述一个程序员?
属性(成员变量 实例实量) 名词描述
行为(方法)          动词描述
创建一个学生类

使用关键词 class
属性:姓名 性别 年龄
行为:吃饭 睡觉 打游戏
注意:一个.java文件中可以创建多个不同的类
但是使用public修饰的类 一个文件只能有一个
并且 这个用public 修饰的类 必须跟.java文件的文件名 保持一致

class Student{
//属性(成员变量) 类中方法外
String name;
String gender;
int age;

//行为(成员方法) 先不写static其他跟函数声明一样
public void eat() {
    System.out.println("吃饭");
}
public void sleep() {
    System.out.println("睡觉");
}
public void playGame(String gameName) {
    System.out.println("玩" + gameName);
}
}

项目中 可以不可以有同名的类 可以

注意: 开发中尽量不要使用同名的类(避免麻烦)


思考:一段代码 在内存中如何表现
成员变量有没有默认的初始值?
public static void main(String[] args) {
    //创建一个学生对象
    //类名 对象名 = 初值;
    //等号前面 叫做对象的引用(保存对象的地址)
    Student stu1 = new Student();
    //new 会在对内存中开辟一块空间
        //保存的事成员变量

    //成员方法跟函数一样 会进栈执行

    //为对象的成员变量赋值
    // 对象名.属性名 = 值;
    stu1.name = "Gorilla";
    stu1.age = 23;
    stu1.gender = "Male to female";

    //取值
    System.out.println(stu1.name);
    System.out.println(stu1.age);
    System.out.println(stu1.gender);

    //调用成员方法
        //对象名.方法名(参数);
    stu1.eat();
    stu1.sleep();
    stu1.playGame("jier");

    Student stu2 = stu1;//两个引用指向了同一个对象(内存空间)
    stu2.name = "gorilla";
    System.out.println(stu1.name);
}

这里写图片描述


成员变量 和 局部变量 的区别

1. 生命周期(出生到死亡)

成员变量: 随着对象的创建而创建,随着对象的销毁而销毁
局部变量: 随着方法的执行而创建,随着方法的结束而销毁

2. 初值

成员变量: 如果没有初值 系统会给默认值
局部变量: 没有初值 不能使用

3. 作用域

成员变量: 在整个类中有效
局部变量: 在方法中有效

4. 创建位置

成员变量: 类中方法外
局部变量: 方法上或者方法中

5. 在内存中的表现

成员变量: 保存在堆内存中的
局部变量: 运行在栈内存当中

创建匿名对象

    //new 开辟了3个内存空间 之间没有联系
    new Person().name = "little gorilla酱";
    new Person().age = 20;
    new Person().introducte();
    //当做参数使用 减少代码
    //测试方法时使用

面向对象的特征: 封装 继承 多态

封装

方法本身就是一种封装
将代码的实现或者属性隐藏起来 不让外界直接访问
对外提供访问方法(间接访问)

关键词 private(私有)
被private修饰的成员变量 只能被本类访问

class Phone{
//成员变量私有化
private String name;
private String color;

//私有化之后 需要提供对外的访问方法
//每一个成员变量 需要提供一对方法 赋值(set方法) 和 取值(get方法)
//命名规范 set+成员变量名() 小驼峰

public void setName(String name) {
//就近原则
//name = name;

    //使用关键字 this
    //this 表示本类的对象
    //this.name 表示 本类的name属性
    //this 谁调用了这个方法 这个对象就是this
    this.name = name;   
}
//get方法
public String getName() {
    return name;
}

public void setColor(String color) {
    this.color = color;
}
public String getColor() {
    return color;
}

public void intruducte() {
    System.out.println(name + " " + color);
}

javaBean(实体类)规范

1.成员变量私有化
2.提供set/get方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值