java学习笔记5.22多维数组以及对象和类
来源:互联网 发布:淘宝客广告语 编辑:程序博客网 时间:2024/05/16 17:05
- 数组
- 类和对象
- Random类
- Point2D类
- 静态变量和常量使用方法
- 可见性修饰符
- 数据域封装
数组
声明二维数组:
数据类型【】【】 数组名;
数据类型 数组名 【行数】 【列数】;
list = new int[4][3];int[][] list = {{1,5,4},{2,3,1,},{,,},};
访问数据 list[2][1] = 2;下标必须在方括号内。
数组的长度:有数组中的行来决定即第一个下标例如
list.length = 4;因为有4行,
其包含数组元素:list[0],list[1],list[2]都是三个元素。
锯齿数组(不规则数组)
int[][] list = {{1,2,3,4,5},{1,2,3,4},{1.2.3},{1,2},{1}};如果不知道数组的长度可以这样表述:int[][] list = new int[5][];list[0] = new int[5];list[1] = new int[4]; . . .处理二维数组: 1. 初始化数组for(int row = 0;row < list.length;row++){ for(int column = 0;column < list[row].length;column++){ list[row][column] = input.nextInt(); } } 2. 随机值初始化数组 for(int row = 0;row < list.length;row++){ for(int column = 0;column < list[row].length;column++){ list[row][column] = (int)(Math.random * 100); } } 3. 打印数组 for(int row = 0;row < list.length;row++){ for(int column = 0;column < list[row].length;column++){ System.out.print(list[row][column] + " "); } System.out.println() } 4. 求所有元素的和 int total = 0; for(int row = 0;row < list.length;row++){ for(int column = 0; column < list[row].length:column++){ total = total + list[row][column]; } } 5. 对数组按列求和 for(column = 0;column < list[0].length;column++){ int total = 0; for(int row =0;row < list.length ;row++){ total = total + list[row][column]; } System.out.println(total); } 6. 哪行的和最大,利用maxRow和indexOfMaxRow跟踪和最大值。 int maxRow = 0; int indexOfMaxRow = 0;//得到第一行的和,设为最大行 for(int column = 0;column < list[0].length;column++){ maxRow += list[0][column]; } for(int row = 1;row < list.length;row++){ int totalOfThisRow = 0; for(int column = 0;column <list[row].length;column++){ totalOfThisRow += list[row][column]; } //与第一行相比看结果 if(totalOfThisRow > maxRow){ maxRow = totalOfThisRow; indexOfMaxRow = row;} System.out.println("");}
将二维数组传递给方法:
定义返回数组的方法时返回值写int[][]
在控制台输入文件
java xxx < xxxx.txt
多维数组创建及声明
//6行5列2个元素double [][][] scores = new double[6][5][2];double[][][] scores={{{7.5,20.5},{9.0,20.5},{,},{,},{}},{{7.5,20.5},{9.0,20.5},{,},{,},{}},{{7.5,20.5},{9.0,20.5},{,},{,},{}},{{7.5,20.5},{9.0,20.5},{,},{,},{}},{{7.5,20.5},{9.0,20.5},{,},{,},{}},{{7.5,20.5},{9.0,20.5},{,},{,},{}},}
多维数组每个元素都是数组scores[0]是二维数组长度为5,scores[0][0]长度为5。
类和对象
- 类的表示方法:类名、成员变量、成员函数。
- 生成对象的方法:类名 对象名 = new 类名()
例如Dog dog = new Dog(); - 对象的使用方法:
对象.变量
对象.函数 - 匿名对象:
new 类名()
使用方法:new 类名().变量(函数)
只能使用一次。 - 函数的重载:同名函数之间看括号内的参数类型,用参数类型来加以区分。
作用:可以在同一个类中拥有多个同名的函数。 - 构造函数:类名()例如 class(){}。
构造函数是成员函数。特征是:没有返回值的类型定义,名称必须和类名相同。前面不加void
使用方法:new + 类名()
同类中如果只声明了一个构造函数,则优先使用这一个而不考虑未声明的 无参数构造函数。仅仅放类中未明确定义构造方法时才会使用默认声明的无参数构造函数 - 非静态的方法不可以通过 类名.函数()来调用。
- 实例:一个对象就是类的一个实例,可以从类中创建多个实例,创建实例的过程为实例化,
- 变量如果没有赋值,boolean默认数据类型为false,数据型默认为0,String为null,char 为’\u0000’
- 引用存放的是对象的地址,
- 指向对象。
Random类
产生随机值
Random test = new Random();//返回一个随机的整数值。test.nextInt();//返回一个0到n之间的随机整数值test.nextInt(100);//返回一个随机的long型数值test.nextLong();//返回一个随机double的值test.nextDouble();//返回一个随机的float值test.nextFloat();//返回一个随机的boolean值test.nextBoolean();
Point2D类
- 引进包
import javafx.geometry.Point2DPoint2D p1 = new Point2D(x1,x2);PointwD p2 = new Poine2D(x2,y2);//计算两点之间的距离p1.distance(p2);//得到某点的横纵坐标p1.getX();p1.getY();//返回字符串表示p1.toString();
静态变量和常量使用方法
- 静态变量
被类中的所有对象共享静态方法不能访问类中的实例成员。
如果一个对象修改了静态变量的值,那么同一个类中的所有对象都会受影响。类中的所有对象变量值相同。使用关键词static
可以使用 类名.变量来调用。 - 静态常量
定义final static PI。通常情况下通过访问Math.PI来访问。 - 非静态方法也称之为实例方法,必须借助对象来访问,静态方法不能使用非静态变量需要用类名直接调用函数:类名.函数()
- static 还可以定义静态代码框
static {System.out.println();}
可见性修饰符
- 将类储存在包中
package 包名;publicprotectedprivatedefault
数据域封装
为了避免对于数据域直接修改,应该使用private修饰符将数据域声明为私有,这称为数据域封装。
为了访问数据域可以使用get方法返回数据域的值,为了更新数据域的值可以使用set方法。get方法被称为访问器,set方法被称为修改器。
- 定义get方法
public returnType getPropertyName()
public void setPropertyName(dataType propertyValue) - 对象数组
创建数组储存对象:
类名[] 数组名 = new 类名[长度]
初始化数组:
for(int i = 0;i < circleArray.length;i++){ circleArray[i] = new Cricle();}
数组名[下标] = new 类名();
“\’t”:转义字符向后空8个格。
printf(%+-9f)正负号表示+表示输出的数带正负号,-:表示左对齐。*
- 变量的作用域:
实例变量和静态变量的作用域都是整个类,无论在哪里声明。
局部变量和类变量重名时优先使用局部变量。 - this的用法:
1 0
- java学习笔记5.22多维数组以及对象和类
- Java中_多维数组和对象
- Java学习笔记——多维数组
- C++学习笔记--指针和多维数组
- [学习笔记]多维数组
- PHP学习笔记之数组和多维数组
- C语言学习笔记(19) 多维数组和多维指针分析
- Java学习:输出任意多维数组(多维数组非矩形)
- Java学习笔记之三--类和对象以及Setter和Getter方法的使用
- 【C++学习笔记】11_多维数组
- C++primer学习笔记-----3.6多维数组
- 【python学习笔记】多维数组初始化
- Java中传入和取得oracle10g存储过程返回的数组对象(多维数组)
- JAVA学习笔记21——多维数组+数组常用方法
- java学习笔记5——对象以及包,类和方法
- Java学习——多维数组
- java学习之路 之 面向对象编程-多维数组-练习题
- Java学习笔记一:基本语法:类和对象的介绍、数组、引用类型
- Spark安装与学习
- mysql数据类型详解
- Build Your First Mobile App With Ionic 2 & Angular 2 - Part 2
- OpenCV学习HighGUI
- 【华为OJ】【096-表达式求值】
- java学习笔记5.22多维数组以及对象和类
- 设计模式 装饰者模式 带你重回传奇世界
- python 中文编码问题
- Java基础笔记(截止到面向对象思想)
- C++动态生成二维数组
- 设计模式 观察者模式 以微信公众服务为例
- Build Your First Mobile App With Ionic 2 & Angular 2 - Part 3
- 设计模式 策略模式 以角色游戏为背景
- VirtualKD+Windbg+vmware 极速调试+Windbg下载符号