文章目录

  • 1.二维数组
  • 2.不规则数组
  • 3.面向对象
  • 3.1 对象
  • 3.2 属性,方法
  • 3.3 类
  • 3.4 类和对象的关系
  • 4.类的应用
  • 4.1 定义
  • 4.2 属性
  • 5.方法
  • 5.1 定义
  • 5.2 方法的使用
  • 5.2.1 实例一:1,2
  • 5.2.2实例二:1,2
  • 实例三:1,2
  • 5.3 总结方法调用
  • 5.2 常见错误代码
  • 5.3 this
  • 6.编程:二维数组 计算每个班级成绩和
  • 7.编程:不规则数组 杨辉三角形
  • 8.编程:方法测试
  • 9.注意


1.二维数组

java计算不规则区域面积原理 java不规则二维数组输出_java


java计算不规则区域面积原理 java不规则二维数组输出_java_02

public static void main(String[] args) {
// 二维  动态初始化   
		//二维数组的长度:元素的个数][每个元素存储的一维数组的大小]
		int [][] arr = new int[3][2];
//赋值
		arr[0][0] = 12;
		arr[0][1] = 2;
		arr[1][0] = 5;
		arr[1][1] = 8;
		arr[2][0] = 14;
		arr[2][1] = 12;
		
//动态赋值:控制台输入
		Scanner superman = new Scanner(System.in);
		System.out.println("--输入元素值:");
		for(int i = 0; i < arr.length; i++) {
			for(int j = 0 ; j < arr[i].length; j ++) {
				arr[i][j] = superman.nextInt();
			}
		}
		
//基本for
		for(int i = 0 ; i < arr.length; i++) {//行 :数组元素
			for(int j = 0;  j < arr[i].length; j ++) {//列  一维数组元素
				System.out.print(arr[i][j] + "\t");
			}
			System.out.println();
		}
		
//增强for
		for( int [] ar: arr) {
			for(int a : ar) {
				System.out.print(a+"\t");
			}
			System.out.println();
		}
	}

2.不规则数组

java计算不规则区域面积原理 java不规则二维数组输出_i++_03

public static void main(String[] args) {
// 不规则数组  动态初始化----------------------------------
		int [][] arr = new int[3][];
		//给每个元素存储的一维数组开辟空间
		arr[0] = new int[2];
		arr[1] = new int[3];
		arr[2] = new int[4];
		
		for(int [] ar : arr) {
			for(int a : ar) {
				System.out.print(a + "\t");
			}
			System.out.println();
		}
//静态初始化--------------------------------------------
		int [][] arr1 = {{12,2},{5,8,6},{14,12,44,3}};
		int [][] arr2 ;
		arr2 = new int[][] {{12,2},{5,8,6},{14,12,44,3}};
		
		for(int [] ar : arr1) {
			for(int a : ar) {
				System.out.print(a + "\t");
			}
			System.out.println();
		}
	}

多维数组内存:

java计算不规则区域面积原理 java不规则二维数组输出_i++_04

3.面向对象

3.1 对象

对象:一切可以被描述的事物。

3.2 属性,方法

属性: 对象的特征。
方法:动作,行为。

3.3 类

类:相似对象的集合。

3.4 类和对象的关系

1.类是对象的抽象,对象是类的具体化;
2.类是一个模板,根据此模板可以创建出对象,这些对象具备
共同的特征和行为。
3.类是一种数据类型,是引用数据类型;对象 是对应的引用变量。

4.类的应用

4.1 定义

语法:

java计算不规则区域面积原理 java不规则二维数组输出_System_05

访问修饰符   关键字   规范:大驼峰命名法(帕斯卡)
public         class      类名{  //类体
     //成员
     属性;
    方法();
}
大驼峰命名法(帕斯卡): 多个单词组成 ,每个单词首字母都大写。
                                       Demo
                                       MyDemo

4.2 属性

java计算不规则区域面积原理 java不规则二维数组输出_java计算不规则区域面积原理_06


示例:

对象内存图

java计算不规则区域面积原理 java不规则二维数组输出_System_07

//创建一个郭靖,(对象)
		//声明了一个对象
		// 数据类型 对象名 
		Person guojing ;
		//创建对象
		guojing = new Person();
		//给属性赋值
		guojing.name = "郭靖";
		guojing.age = 22;
		//输出  属性的值
		System.out.println(guojing.name);
		System.out.println(guojing.age);

对象之间的独立性

java计算不规则区域面积原理 java不规则二维数组输出_i++_08

public static void main(String[] args) {
		// null字面值:空类型  空对象
		Person guojing = null;
		guojing = new Person();
		guojing.name = "郭靖";
		guojing.age = 22;
		System.out.println(guojing.name);
		System.out.println(guojing.age);
		/*不同对象 在内存中是独立的空间,
		 * 每个对象都有自己的成员变量进行维护。
		 * 一个对象 的 成员数据修改,
		 * 不会影响另一个对象。
		 */
		Person yangkang = new Person();
		System.out.println(yangkang.name);
		System.out.println(yangkang.age );
		
	}

*不同对象 在内存中是独立的空间,
* 每个对象都有自己的成员变量进行维护。
* 一个对象 的 成员数据修改,
* 不会影响另一个对象。

总结语法:
    创建对象:
        类型  对象名  = new 类型();
       例如:Person guojing = new Person();
    给属性赋值:
       对象名.属性名  = 值;
      例如:  guojing.name = "郭靖";

5.方法

5.1 定义

public               void 无返回值类型 
                        返回值类型:基本和引用

java计算不规则区域面积原理 java不规则二维数组输出_System_09


java计算不规则区域面积原理 java不规则二维数组输出_System_10


方法定义:

public class Person {
	//属性,成员变量,实例成员变量
	String name;
	int age;
	//吃  方法的定义
	public void eat() {
		System.out.println("吃饭");	
	}
	public String getComputer() {
		return "HP电脑";
	}
}

带返回值类型的方法:
注意:
1.返回值 必须用 return 返回,才能结束方法;
2.返回的值 的类型 与声明的类型必须相符;
3.只能返回一个值。

方法调用语法:
对象名.方法名();
例如:guojing.eat();
     String s = guojing.getComputer();

5.2 方法的使用

5.2.1 实例一:1,2

1.定义 方法:Person

public class Person {
	//属性,成员变量,实例成员变量
	String name;
	int age;
	//吃  方法的定义
	public void eat() {
		System.out.println("吃饭");	
	}
	//买电脑 方法的定义
	public String getComputer() {
		return "HP电脑";
	}
	//介绍
	public void show() {
		// 隐式 使用this
		System.out.println(name + "," + age);
		//显示使用了this 
		System.out.println(this.name + "," + this.age);
	}
	public String show1() {
		return this.name + "," + this.age;
	}
	///数组 方法的定义
	public int[] getValue() {
		int [] arr = {11,22,33};
		return arr;
	}
}

2.调用 方法:Person
第一段:

public class TestPerson1 {

	public static void main(String[] args) {
		// null字面值:空类型  空对象
		Person guojing = null;
		guojing = new Person();
		guojing.name = "郭靖";
		guojing.age = 22;
		System.out.println(guojing.name);
		System.out.println(guojing.age);
		System.out.println(guojing);
		/*不同对象 在内存中是独立的空间,
		 * 每个对象都有自己的成员变量进行维护。
		 * 一个对象 的 成员数据修改,
		 * 不会影响另一个对象。
		 */
		Person yangkang = new Person();
		yangkang.name = "杨康";
		yangkang.age = 23;
		System.out.println(yangkang.name);
		System.out.println(yangkang.age );
		System.out.println(yangkang);
		
		yangkang = null;
		System.out.println(yangkang.name);
		System.out.println(yangkang.age);
		
	}
}

java计算不规则区域面积原理 java不规则二维数组输出_i++_11


第二段:

public class TestPerson2 {

	public static void main(String[] args) {
		// 
		Person guojing = new Person();
		//方法的调用
		guojing.eat();
		System.out.println(guojing.name);//null
		System.out.println(guojing.getComputer());
		String s = guojing.getComputer();
		System.out.println(s);
	}
}

第三段:

public class TestPerson3 {

	public static void main(String[] args) {

		Person guojing = new Person();
		guojing.name = "郭靖";
		guojing.age = 22;
//		guojing.show();//
		String s = guojing.show1();
//		System.out.println(s);
//		s = s + "hello";
		if(s.equals("hello")) {
			System.out.println(s);
		}
	}

}

5.2.2实例二:1,2

1.定义 方法:Score

public class Score {
	int javaSe;
	int c;
	int db;
	public int sum() {
		return javaSe + c + db;
	}
	public int avg() {
		return sum() / 3;
	}
}

2.调用 方法:Score

import java.util.Scanner;

public class TestScore {

	public void f() {
		System.out.println("f");
	}
	public void ff() {
//		this.f();
		f();
	}
	public static void main(String[] args) {
		TestScore t = new TestScore();
		t.f();
		
		Score score = new Score();
		Scanner superman = new Scanner(System.in);
		System.out.println("--输入javaSe成绩:");
		score.javaSe = superman.nextInt();
		System.out.println("--输入c成绩:");
		score.c = superman.nextInt();
		System.out.println("--输入db成绩:");
		score.db = superman.nextInt();
		System.out.println("总成绩:" + score.sum());
		System.out.println("平均成绩:" + score.avg());
	}
}

java计算不规则区域面积原理 java不规则二维数组输出_i++_12

实例三:1,2

1.定义 方法:Cat

public class Cat {
	String name;
	String type;
	//方法
	public void run() {
		System.out.println("跑");
	}
	public void play() {
		System.out.println("玩儿");
	}
	public String say() {
		return "我是一只小猫";
	}
}

2.调用 方法:Cat

public class TestCat {

	public static void main(String[] args) {
		Cat xiaohua = new Cat();
		xiaohua.name = "小花";
		xiaohua.type = "波斯猫";
		System.out.println(xiaohua.name + "," + xiaohua.type);

		Cat jiafei = new Cat();
		jiafei.name = "加菲";
		jiafei.type = "加菲猫";
		System.out.println(jiafei.name + "," + jiafei.type);
		jiafei.run();
		jiafei.play();
		System.out.println(jiafei.say());	
	}
}

5.3 总结方法调用

总结方法调用:
1.同一个类中:
自定义方法 互相调用可以使用this,也可以省略this;
同一个类中的主方法中 调用 自定义方法:
必须显示 new 创建对象调用,因为 main是static的。
2.不同类中:
必须显示 new 创建对象调用。

5.2 常见错误代码

5.3 this

this:
表示 本类对象,当前类对象
作用:调用类中的成员。属性,方法

//介绍

public void show() {
		System.out.println(this.name + "," + this.age);
	}

6.编程:二维数组 计算每个班级成绩和

  • 练习:二维数组
  • 三个班级,每个班级3个人,计算每个班级成绩和。
import java.util.Scanner;
public class Demo3_exam {
	public static void main(String[] args) {
		int [][] arr = new int[3][3];
		//赋值
		Scanner superman = new Scanner(System.in);
		
		for(int i = 0; i < arr.length; i++) {
			System.out.println("--输入第"+ (i+1) + "个班级的成绩:");
			for(int j = 0; j < arr[i].length; j ++) {
				arr[i][j] = superman.nextInt();
			}
		}
		//计算输出
		int sum = 0;
		for(int i =0; i < arr.length; i++) {
			sum = 0;//
			for(int j = 0; j < arr[i].length; j++) {
				sum += arr[i][j];
			}
			System.out.println("第"+(i+1) +"个班级成绩:" + sum);
		}
	}
}

7.编程:不规则数组 杨辉三角形

java计算不规则区域面积原理 java不规则二维数组输出_System_13

public class Demo3 {

	public static void main(String[] args) {
		int [][]arr = new int [7][];
		//分配空间
		for (int i = 0; i < arr.length; i++) {
			arr [i] = new int [i+1];
		}
		//赋值
		for (int i = 0; i < arr.length; i++) {//行
			for (int j = 0; j <=i; j++) {//列
				if ( j == 0 ||i == j ) {
					arr[i][j] = 1;
				} else {
					arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
				}
			}
		}
		for (int[] ar : arr) {
			for (int a : ar) {
				System.out.print(a+"\t");
			}System.out.println(" ");
		}		
	}
}

8.编程:方法测试

import java.util.Scanner;
public class TestMethod {

	public void f1() {
		for(int i = 1; i <= 5; i++) {
			for(int j = 1; j <= 5; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	public void f2() {
		for(int i = 1; i <= 8; i++) {
			for(int j = 1; j <= 8; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
	public static void main(String[] args) {
//上面的太麻烦了
		/*我们来简化一下:
		 * 方法:
		 *    1.功能封装;
		 *    2.代码重用;
		 */
/		Scanner superman = new Scanner(System.in);
/		int n = superman.nextInt();

		TestMethod t = new TestMethod();
		t.f1();
		t.f2();
		t.f1();
		t.f2();
	}
}

9.注意

1.任何对象都具有属性和方法
2.访问时的格式为:对象名.属性名
例如:
System.out.println(guojing.name); System.out.println(guojing.age);
3.对象之间互不干扰
4.当空指针时(null),那么就无法查找到它的引用对象了,当占用过多时,java会自动将它释放掉。
5.方法的好处:
隐藏,便于使用