从零基础基础java第五周第四节

  上一节与大家分享了代码块,分别为普通代码块,构造代码块,静态代码块,还有我暂时没有分享的同步代码块。

  这次跟大家分享一种数组,对象数组,前面我们学过数组和对象,现在的对象数组顾名思义,便是在数组中建立对象。一个普通数组的定义是:数组类型【】  数组名 = new  数组类型【数组长度】;而对象数组的定义是:类【】  对象数组名称 = new  类【数组长度】;我想大家都已经看出了,这儿就是把数据类型改成了类,然后数组名字和对象数组名称都是相同意义,一个名字,只是各自代表不同的地位。接下来用代码让大家熟悉一下:

public class Test {
public static void main(String[] args) {
Person[] ps = new Person[3];


Person p = new Person();
Person p1 = new Person();
Person p2= new Person();


ps[0] = p;
ps[1] = p1;
ps[2] = p2;
}
}
class Person{ }

如以上代码,我定义了一个person类,这里我里面没放任何属性和方法,方便大家理解。然后在主函数的第一句我定义了一个person数组,第二段是定义了三个person对象,然后我在第三段将三个person对象分别赋给了对象数组,第三段就跟我们普通数组赋值表现得一样,所以大家看着是不是很简单?关于对象数组的应用就这么多,当然,如果想要分别将对象数组取出来应用,我想大家应该早想到了,用for来循环调用对不对,关于对象数组就这么多。

  接下来我与大家分享的是内部类,当我第一次听到这个名词,累不累?累不累?小编不由得大声说了声:累。所谓内部类,顾名思义,便是在一个类的内部再建一个类。如以下代码:

class Person{
class person1{}
}

以上代码中的person1便是一个内部类。只不过为了大家观看方便小编没有插入任何方法什么的。大家也许会说,什么?就这么简单?小编在这儿告诉大家,定义非常简单,但是如果我们想调用里面的方法就不这么简单了,比如以下代码:

public class Test {
public static void main(String[] args) {
Person p = new Person();
p.pln();
}
}
class Person{
Person1 ps = new Person1();
class Person1{
int i = 3;
}
public void pln(){
System.out.println(ps.i);
}
}

以上代码中,我在Person1中定义了变量i并且给它赋值3,当我想在主函数取出时,就得现在Person中new出它,然后通过Person的方法将它传给主函数,如果在主函数中直接调用Person1会报错,不信大家可以试试,当然,除了这种调用方法,还有一种,如以下代码:

public class Test {
public static void main(String[] args) {
Person.Person1 ps = new Person().new Person1();
System.out.println(ps.i);
}
}
class Person{
class Person1{
int i = 3;
}
}

以上在吗中,我先调用Person,然后点Person1,最后分别new一个person和person1,然后这样我的ps对象便可以调用内部内里面的所有方法和属性了,学习内部内主要是学会其中的调用,当然,还有静态内部类,如果你感兴趣可以在内部类前面加个static试试,这样调用更方便,但是不推荐大家使用。还有个匿名内部内,简单跟大家说说就是在一个对象中再开辟一个类,后面我会在多态跟大家详细说说,这儿关于内部类就到这了。

  一个对象数组,一个内部类,今天介绍的就是这两个,也许大家不知道有什么用,但是我想说的,不要因为不知道有什么用就不去理会它,当有一天你需要用它而不会时,那时已经晚了。内部类还有许多其它有趣的地方,我这儿只是为了跟大家简单介绍方便以后学习,还希望大家下来自己探索。同时一起学习,一起找出问题,希望找出本节问题的小伙伴及时评论下方,小编非常感谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值