举一反三:关于main函数参数(String[] args)是不能对非静态的数组进行引用

main函数的应用

下面代码结果会报错,解析如下,解决方法 static int arr[] = new int[10];//加个static 变成静态变量

public class Person { 
	int arr[] = new int[10];
	public static void main(String a[]) { 
		System.out.println(arr[1]); 
	} 
}

实例变量在类的一个实例构造时(new对象时候)完成初始化,而且在类的静态方法(main方法)中不能直接访问类的非静态成员,而只能访问类成员,类的普通方法可以访问类的所有成员和方法,而静态方法只能访问类的静态成员和方法,因为静态方法属于类,而普通方法及成员变量属于类的实例,类方法(静态方法)不能使用属于某个不确定类的实例方法和变量,在静态方法里没有隐含的this,而普通方法有。

变1

在这里插入图片描述
`
结果指向的是int类型的值所以结果是0

public class Person { 
	static int arr[] = new int[10];//这是是属性只不过,是引用类型的属性
	public static void main(String a[]) { 
		System.out.println(arr[1]);
	} 
}

System.out.println(arr[1]);
这里System.out.println(Person.arr[1]);静态属性,
静态方法中调用:类名.属性,类名.方法 也可以省略类名
``

变2

在这里插入图片描述
p指向arr[] ,arr没有任何指向,数组是一个引用类型的,所以结果是null

public class Person {
	 static int arr[] ;
	public static void main(String ar[]) {
		Person p=new Person();	
		System.out.println(p.arr);//这里p.arr或Person.arr或arr都可以,静态的又在同一个类,三种都可以表达
	}
}

此时输出结果是null

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值