Java之再初识三
本篇文章从以下几个方面介绍JAVA:
2.对象作为参数传递的特点
3.对象初始化的顺序
4.static与非static的区别
5.final修饰符的作用
6.Java初始化数组语法
7.基本数据类型与引用类型的区别
问题1:
直接通过实例说明。
public class object{ object c; c=new object(); }
第二行语句产生了一个object类的声明,但此时并没有产生此类的对象。
第三行语句为声明c赋予了一个对象,此时声明被引用所取代,即c此时为对象引用。
也可以声明后立即赋予对象:object c=new object();
该语句的执行顺序为:先产生对象,之后将对象赋予声明,声明被对象引用所取代。
问题2:
对象作为参数传递,传递的是对象的地址。而基本数据类型作为参数传递,传递的是值传递。
public class PassValue { private static int a; public static void main(String [] args) { modify(a); System.out.println(a); } public static void modify(int a) { a++; } }
基本数据类型传递为值传递,故a的值依然为0;
class IntClass { int value; } public class RunIntClass { public static void modifyValue(IntClass s,int val) { s.value = val; } public static void main(String args[]) { IntClass a = new IntClass(); modifyValue(a,8); System.out.println(a.value); } }
对象作为参数是地址传递,所以a.value值为8;
问题3:
以 object c=new object();为例
先产生一个对象new object(),然后将对象赋予声明c,声明被对象引用取代。
问题4:
对于static与非static的区别可以理解为:
static方法只能访问该类static属性,不能访问对象中的属性。
但非static方法可以访问static属性或方法。
调用static方法时,可以采用“对象引用.方法名”,也可以采用“类名.方法名”。
问题5:
final可以修饰类,方法,变量
修饰类,终态类,类不能被继承。
修饰方法,方法不能被重写。
修饰变量,此时变量转变为常量
问题6:
数组声明: int a[] 或 int[] a
初始化:a=new int[数组长度]
或者直接在声明的时候初始化
int[] a={3,4,5,6}
但是要注意,int[] a; a={3,4,5,6}这种写法是错误的。
以下方法也可以定义及初始化
int a[]=new int[] {1,2,3,4};
问题7:
基本数据类型有8种:
整数类型:
int, long, byte, short
浮点数类型:
float, double
字符类型:
char
布尔类型:
boolean
引用数据类型非常多,大致包括:
类、 接口类型、 数组类型、 枚举类型、 注解类型、 字符串型
例如: string类型就是引用类型。
两者存储位置不同:
基本数据类型存储在方法栈中;引用数据类型变量具体内容放在堆中。
如有错误,欢迎批评指正!