Java 自学笔记 day6 二维数组与面向对象

1:二维数组(理解)
    (1)元素是一维数组的数组。
    (2)格式:
        A:数据类型[][] 数组名 = new 数据类型[m][n];
        B:数据类型[][] 数组名 = new 数据类型[m][];
        C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};
        D:数据类型[][] 数组名 = {{...},{...},{...}};
 

/*
	格式
		数据类型[][] 数组名 = new 数据类型[m][n];
		
		m:表示这个二维数组有多少个一维数组。
		n:表示每一个一维数组的元素有多少个。
*/
class Array2Demo {
	public static void main(String[] args) {
		 //定义一个二维数组
		 int[][] arr = new int[3][2];
		 //定义了一个二维数组arr
		 //这个二维数组有3个一维数组的元素
		 //每一个一维数组有2个元素
		 //输出二维数组名称
		 System.out.println(arr); //地址值	[[I@175078b
		 //输出二维数组的第一个元素一维数组的名称
		 System.out.println(arr[0]); //地址值	[I@42552c
		 System.out.println(arr[1]); //地址值	[I@e5bbd6
		 System.out.println(arr[2]); //地址值	[I@8ee016
		 //输出二维数组的元素
		 System.out.println(arr[0][0]); //0
		 System.out.println(arr[0][1]); //0
	}
}

2:两个思考题(理解)
    (1)Java中的参数传递问题
        Java中只有值传递。
        
        基本类型:形式参数的改变不影响实际参数
        引用类型:形式参数的改变直接影响实际参数

/*
	思考题1:看程序写结果,然后分析为什么是这个样子的。并画图讲解。最后总结Java中参数传递规律。
	
	Java中的参数传递问题:
		基本类型:形式参数的改变对实际参数没有影响。
		引用类型:形式参数的改变直接影响实际参数。
*/
class ArgsDemo {
	public static void main(String[] args) {
		int a = 10;
		int b = 20;
		System.out.println("a:"+a+",b:"+b); //a:10,b:20
		change(a,b);
		System.out.println("a:"+a+",b:"+b); //???	a:10,b:20

		int[] arr = {1,2,3,4,5}; 
		change(arr);
		System.out.println(arr[1]); //???	4
	}

	public static void change(int a,int b) { //a=10,b=20
		System.out.println("a:"+a+",b:"+b); //a:10,b:20
		a = b;	//a=20
		b = a + b; //b=40
		System.out.println("a:"+a+",b:"+b); //a:20,b:40
	}

	public static void change(int[] arr) { //arr={1,2,3,4,5};
		for(int x=0; x<arr.length; x++) {
			if(arr[x]%2==0) {
				arr[x]*=2;
			}
		}
		//arr={1,4,3,8,5};
	}
}


    
3:面向对象(掌握)
    (1)面向对象
        面向对象是基于面向过程的编程思想
    (2)面向对象的思想特点
        A:是一种更符合我们思考习惯的思想
        B:把复杂的事情简单化
        C:让我们从执行者变成了指挥者
        
        举例:
            买电脑
            洗衣服
            做饭
            ...
            万事万物皆对象
    (3)把大象装进冰箱(理解)
        A:面向过程实现
        B:面向对象实现
        
        注意:如何让我们的操作更符合面向对象思想呢?
        A:有哪些类
        B:每个类有哪些成员
        C:类与类的关系
    (4)类与对象
        A:现实世界的事物
            属性    事物的基本描述
            行为    事物的功能
        B:Java语言中最基本的单位是类。所以,我们要用类来体现事物
        C:类
            成员变量    事物属性
            成员方法    事物行为
        D:类:是一组相关的属性和行为的集合。是一个抽象的概念。
          对象:是该类事物的具体存在,是一个具体的实例。(对象)
          
          举例:
            学生:类
            班长:对象
    (5)类的定义及使用
        A:类的定义
            成员变量    定义格式和以前一样,就是位置不同,在类中,方法外。
            成员方法    定义格式和以前一样,就是去掉了static。
        B:使用类的内容
            a:创建对象? 格式
                类名 对象名 =  new 类名();
            b:如何使用成员变量和成员方法呢
                对象名.成员变量
                对象名.成员方法()
    (6)案例:
        A:学生类的定义和使用
        B:手机类的定义和使用

/*
	手机事物:
		属性:品牌,价格,颜色...
		行为:打电话,发短信,玩游戏...
		
	手机类:
		成员变量:品牌,价格,颜色
		成员方法:打电话,发短信,玩游戏
*/
class Phone {
	//品牌
	String brand;
	//价格
	int price;
	//颜色
	String color;
	
	//打电话的方法
	public void call(String name) {
		System.out.println("给"+name+"打电话");
	}
	
	//发短信的方法
	public void sendMessage() {
		System.out.println("群发短信");
	}
	
	//玩游戏的方法
	public void playGame() {
		System.out.println("玩游戏");
	}
}
/*
	手机类的测试
*/
class Phone {
	//品牌
	String brand;
	//价格
	int price;
	//颜色
	String color;
	
	//打电话的方法
	public void call(String name) {
		System.out.println("给"+name+"打电话");
	}
	
	//发短信的方法
	public void sendMessage() {
		System.out.println("群发短信");
	}
	
	//玩游戏的方法
	public void playGame() {
		System.out.println("玩游戏");
	}
}

class PhoneDemo {
	public static void main(String[] args) {
		//创建手机对象
		//类名 对象名 = new 类名();
		Phone p = new Phone();
		
		//直接输出成员变量值
		System.out.println(p.brand+"---"+p.price+"---"+p.color);
		
		//给成员变量赋值
		p.brand = "诺基亚";
		p.price = 100;
		p.color = "灰色";
		//再次输出
		System.out.println(p.brand+"---"+p.price+"---"+p.color);
		
		//调用方法
		p.call("林青霞");
		p.sendMessage();
		p.playGame();
	}
}


    (7)内存图
        A:一个对象的内存图
        B:二个对象的内存图
        C:三个对象的内存图
    (8)Java程序的开发,设计和特征
        A:开发:就是不断的创建对象,通过对象调用功能
        B:设计:就是管理和维护对象间的关系
        C:特征
            a:封装
            b:继承
            c:多态

猜你喜欢

转载自blog.csdn.net/weixin_41147429/article/details/81201880