1.二维数组:多维数组(每张图是一个三维数组,(rgb255* 255 *255)
格式
1.第一种方法:
数据类型[][] [] [] 变量名 = new int[一维数组长度] [二维数组中元素个数]
int [] [] a =new int [10] [5] 创建了一个名为a的int型的二维数组,其以为长度为10,二维长度为5;赋值与一维相似;
系统会给定元素的默认值
遍历:for(int i;i<a.length;i++){
for(int j;j<b.length;j++){
systenm.out.println(a[i] [j])
}}
2.第二种方法:
数据类型[] [] 变量名 = new 数据类型[一维数组长度] []
int [] [] a = new int[6] [];
,系统没有给定默认值,需要自己手动给
在给定值得过程中,不能使用简便方法
a[0]=new int[]{…}
如果没有进行赋值操作的话,直接打印会出现空指针
3.第三种方法:
数据类型[] [] 变量名 = new 数据类型[] [] {{元素1,元素2,元素3…},{元素1,元素2,元素3…},…
面向对象
面向过程:凡是亲力亲为,(所有的想要的都需要亲自完成)相当于实现者;
面向对象:找一个拥有某种特定功能的人或物,帮我们实现所需求的功能,我们是调用者;
区别:面向过程都是自己做,面向对象就是调用别人来解决问题;
如果物体具有某种功能,我们调用这个物体,(不注重实现过程,只注重结果)这就是面向对象
其中这个调用过程就是面向对象的过程
java为什么是一个面向对象的语言:
是因为java给我们封装了很多的功能jar包,这些jar包或者类库里面有各种各样帮我们实现我们想要的功能的类
比如: String Math Random Scanner java中有长进的系统类库
*面向对象的特征: 封装 继承 多态
创建对象的过程: 类名 对象名=new 类名();
类是一种引用数据类型,
类是对现实生活中的一类具有共同特征的事物的表示
对象是类的具体事例,一个类可以有无数个对象(具体存在的)
对象就是一个类的事例,一个类可以有无数个对象
在类里面封装的必须是所有对象的共同特征
属性指变量,行为指方法
这个赋值过程 对象名.属性=值;
修饰符
public 公开的 在哪儿都能调用
protected 受保护的 子类可以调用
默认的 同一个包下 可以调用 跨包就不行了
private 私有的 只能本类内调用
六大组件
成员变量:定义在类里的方法外的变量
成员方法: 类中的方法就叫做成员方法
静态变量: 用static修饰的变量
静态方法: 用static修饰的方法就叫做静态方法
局部变量: 定义在方法中的变量被称之为局部变量 方法声明上的
构造方法: 用于创建对象使用的就叫做构造方法,
修饰符 类名(){
}
面向对象的内存分析
栈:局部变量和方法的执行,没有初始值
堆: new出来的 有初始值
方法区: class区 字节码文件
static区 static修饰的东西
其中static方法只能调用被static修饰的方法
static随着类的加载而加载,类加载后接着加载static
静态变量:可以被所以的对象共享
成员变量:定义与类中方法外,随着对象的创建而创建,随着对象的消失而消失,存储于堆内存,有默认值
局部变量:定义在方法内,随着方法的消失而消失,存储于栈内存,必须赋值才能被调用
封装:成员变量私有化(隐藏成员变量,对外提供成员方法,共对象调用
为何用:保证类的完整性,不允许别人随意修改类中属性或者代码
为了代码的安全性考虑
this关键字:代表本类对象的引用,谁调用此函数,那就this代表谁 this.a=a;
构造方法的格式:
1.构造方法的格式:
修饰符 类名(){
方法体
}
2.作用:对对象进行初始化
当在new对象时,其实就是在对对象进行初始化
其实创建对象的过程,就是new一个构造函数的过程
由此可知:一个类想要被创造对象,必须要有构造方法;
如果我们类里面没有写构造方法,那么系统会给我们默认创建一个无参的构造方法
3.构造方法的注意事项:
1.构造方法没有返回值,连void都没有
2.方法名和类名相同
3.构造方法可以被重载
4.构造方法什么时候被调用
使用new关键字的时候被调用
如果我们类里面没有写构造方法,那么系统会给我们默认创建一个无参的构造方法
如果我们写了,那么系统就不会给我们提供
一个完整的标准类包括:封装
1.所有成员变量被private修饰
2为每一个成员变量都写一对get…/set…的方法
3写一个无参的构造方法
4写一个有参的构造方法
5写一个方法从而体现出所有成员变量