java基础近期学习的内容总结1。

内部类的同名变量的访问

// 如果出现了重名的现象,那么格式是外部类名称.this.外部类成员变量名
public class Outer{
	int num=10;//外部类的变量
	public class Inner{
		int num=20;
		public void methodInner(){
		int num=30;
		System.out.println(num);//局部变量就近原则,30
		System.out.println(this.num);//内部类的成员变量,20
		System.out.println(Outer.this.num);//外部类的成员变量,10
		}
	}
}

总的来说就是就近原则,然后就是看看是哪个this指定了该变量名。

类的权限修饰符

一共有四种,public > protected > (default) > private。
外部类:public 、 (default)
成员内部类:四种修饰符都可以使用。
方法内部类:四种修饰符都不可以使用,方法内部类只能给当前方法使用。

局部(方法)内部类的final问题

在局部(方法)内部类中,如果希望访问到所在方法的局部变量,那么这个局部变量必须是有效的final变量。
在Java 8+版本开始,可以省略final关键字。
那么为什么一定要加final关键字呢?
原因是跟生命周期有关系。

public class MyOuter{
	public void methodOuter(){
	int num=10;//所在方法的局部变量
	class MyInner{
		public void methodInner{
			System.out.println(num);
		}
	}
}

在上述代码当中,int num=10实际上是int final num=10;只是因为JAVA8+以上的版本将其省略了,因为int num是保存在栈内存当中的,而当你使用这个方法是创建也就是new出来的对象是在堆当中的,由于栈是用完就退栈,所以内存空间很可能就保存不到10这个变量,所以要把它变成常量。不然很可能这个方法就找不到这个num了。

匿名内部类的注意事项

1.在创建对象的时候,只能使用唯一一次

interfaceName obj=new interfaceName(){
	method1();
	method2();
}
obj.method1();
obj.method2();

2.使用匿名对象的话,只能调用唯一一次。
也就是在上方的代码直接new 然后在最后.方法名。
3.匿名内部类是省略了类名称,匿名对象是省略了对象名称。

类作为成员变量类型

String也是一个类。
比如说,先创建一个weapon类,在里面定义一个String类型代表weapon的名字,然后创建getter、setter方法和构造方法。然后再创建一个hero类,hero类定义一个public Weapon weapon;,这样在Demo类中使用hero类对象时,可以使用hero.setWeapon(new Weapon(“多兰剑”));

接口作为成员变量

一共有三种实现的方式:
1.实现接口的实现类。
2.实现匿名内部类接入。
3.使用匿名内部类的匿名对象接入。

接口作为方法的参数或者返回值类型

其实就是一种多态的写法。比如说ArrayList的用法。
List <S.tring> list=new ArrayList<>();
左边是接口名称,右边是实现类名称。ArrayList 实现了List接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值