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修饰的成员变量可以通过类直接访问,也可以通过对象访问
缺点:占用内存时间太长(因为静态变量是存储在方法区的静态区中的,整个程序运行结束才会释放内存)

静态的优先于非静态的开辟内存

点赞