Java学习第五天
1.二维数组
定义:一维数组中的一维数组;数组中的元素,还是数组。
//二维数组初始化
int[][] b=new int[行号(高维下标)][列号(低维下标)];
int[][] b={{1,2,3},{4,5,6}};
//二维数组遍历
1 //二维数组遍历 2 int[][] b={{1,2,3},{3,4,5,6,7}}; 3 for (int i=0;i<b.length ;i++ ) 4 { 5 for (int j=0;j<b[i].length ;j++ ) 6 { 7 System.out.println(b[i][j]); 8 } 9 }
2.在类中定义的变量:成员变量
在类中定义的方法:成员方法
在方法中定义的变量:局部变量
3.局部变量和成员变量的对比:
1.局部变量没有默认值
成员变量有默认值
2.局部变量随着其所在函数被调用而在栈中开辟空间
成员变量随着对象的创建而在堆中开辟内存
3.局部变量是其作用域结束了就立刻释放内存
成员变量只有在其所属的对象被垃圾回收线程回收了,才能释放内存
4.局部变量的作用域是从其定义的位置开始到其所在的大括号结束
成员变量的作用域是整个类
new Car();//如果没有变量接收,则这行代码运行完就变成垃圾了,等待垃圾回收线程
4.面向对象:封装,继承,多态
封装:只对外提供有用的属性和行为
不需要让外界知道的功能,使用private修饰,但是为仍然可以给属性赋值,需要提供setXXX()方法
为了能得带属性的值,需要提供(getXXX)无法
构造函数:用来创建对象的,系统会自动的在类中加入一个构造函数
1 class Student{ 2 3 String name; 4 int age; 5 6 Student(){} 7 8 Student(String mingzi,int nianling) 9 { 10 name=mingzi; 11 age = nianling; 12 } 13 }
可以自己当以构造函数,如果自己定义了构造函数,那么系统就不会在添加默认构造方法
构造函数特点:
1,函数名和类名相同
2.不能有返回值类型
3.只能用户常见创建对象
使用的是系统让集中队伍民开分
构造函数名金额
可以使用构造函数实现家暴复制
实现属性的初始化
student stu=new srdent();类中有系统自动加入的构造函数: Student(){}
自己可以写构造函数,那么系统就不会再加入构造函数
5.this:是一个引用,总是指向当前被使用的对象
当局部变量和成员变量同名时,成员变量无效时,为了区分需要使用this
在构造方法之间调用时,如果使用this,this必须写在第一行。
6.static关键字:
static修饰成员变量的特点:
1:static修饰的成员变量是随着类的加载而在方法区中的静态区开辟内存的
2:static修饰的成员变量是其所属类的所有对象共享的
3:static修饰的成员变量可以通过类直接访问,也可以通过对象访问
缺点:占用内存时间太长(因为静态变量是存储在方法区的静态区中的,整个程序运行结束才会释放内存)
静态的优先于非静态的开辟内存
相关文章