第五天 【数组】
数组:
1:定义方式:数据类型 [] 数组名 = new 数据类型[数组长度]
2:整数类型:byte。short。int,long默认初始化都是0.
浮点类型:float,double,默认初始化值0.0。
布尔类型:boolean默认初始化值false。
字符类型:char默认的初始化值‘\u0000’
-
【内存】:
1:栈、堆、方法区、本地方法区、寄存器!!
2:栈的特点是先进后出,存储局部变量!
int[] arr = int [3];这句话在内存中都做了什么事情?
Q:1:这句话在栈内存生成main方法后int [] arr进入栈内存,然后又new了一个int arr,
【new】是在堆内存中生成了一块内存,分成3块,生成地址值后把地址值赋给栈内存中的arr而栈内存中的arr,
就指向了堆内存中的arr内存!!
【数组定义】:
1:【静态初始化】:就是new数组时数组长度系统默认。
2:【动态初始化】:就是在new数组时给数组指定长度!
数组:arr.length:代表的是数组的长度!!
java中到底是传值还是传址呢?
Q:既是传值也是传址基本数据类型传递的值,引用数据类型传递地址。
Q:java中只有传值,因为地址值也是值(出去面试都说这种,支持者是高司令(java之父))。
第六天:【面向对象】
【成员变量】:和以前定义变量是一样的,只不过位置在方法的上边定义。
【成员方法】:和以前定义方法是一样的,只不过不加static。
【面向对象】的思想特点:
1:是一种符合我们思想习惯的思想。
2:可以将复杂的事情简单化。
3:将我们从执行变成程指挥者。
【面向对象开发】:
1:就是不断的创建对象,使用对象,指挥对象做事情!
【成员变量】:在类中方法外,在堆内存(成员变量属于对象,所以进堆内存)
随着对象的创建而存在,随着对象的消失而消失。有默认初始化值!
【局部变量】:在方法定义中或者方法声明上,在栈内存(局部变量属于方法,所以进栈内存)
随着方法的调用而存在,随着方法的调用完毕而消失。初始化值不同。没有默认初始化值,
必须定义,赋值,然后才能使用。!
【引用数据类型变量】包括哪些:数组,类,接口,枚举。
【基本数据类型变量】包括哪些:byte,short,int,long,float,double,boolean,char。
局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
基本数据类型是直接传值过去的。而引用数据类型,是传地址值过去的!
【封装】
1:将过程和细节都隐藏起来,对外提供公共的访问访问方式!
2:封装不是私有,只是一种体现形式。
【封装的好处】:隐藏细节,提供公共访问方式。能提高代码的复用性和安全性。
【this关键字】:用来区分成员变量和局部变量重名的问题。
【方法的形式参数是类名的时候如何调用】
方法的参数是类名public void print(Student s){}//print(new Student());
如果你看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象。
【匿名对象】
匿名对象就是没有名字的对象。只是调用一次的时候使用,好处就是节省代码。
匿名对象可以作为实际参数传递。
【private关键字】:是一个权限修饰符。可以修饰成员变量。被修饰的成员只能在本类中访问。
|