发表于: 2017-10-12 20:40:59
1 680
今日完成的事情:
学习语法
this关键字;代表当前类的对象(引用,相当于实例化,但不是实例化,this.属性操作当前类的对象的属性,this.方法调用当前类的对象的方法,这个很好理解,就不多说了。
内部类;定义在另外一个类里面的类。与之对应,包含内部类的类被称为外部类。简单说就是提供了更好的封装,隐藏在外部类之内,不允许同一个包中的其他类访问该类(成员内部类,静态内部类,方法内部类,匿名内部类)
成员内部类;要使用内部类的方法时,首先创建了一个外部类对象,在创建内部类对象时,通过外部类对象.new 内部类()的形式。可以理解为:要使用内部类的方法,首先需要将外部类实例化为一个对象,然后通过外部类的对象对内部类进行实例化,最后再调用内部类的方法。就好比文件系统,你要找一个文件,首先需要知道它在哪个盘,然后再找对应的文件夹。
第二个是外部类的 .class 文件,第一个是内部类的 .class 文件,即成员内部类的 .class 文件总是这样:外部类名$内部类名.class,好奇在命令行跑了一下,先是乱码
转一下格式之后,通过编辑了,但是命令行仍然不能运行
一直以为是我Java出问题了,因为下午无聊的时候手残,改了一下电脑用户类型,结果好多程序当场崩溃。。。。idea也没幸免于难。。。一直说jvm出问题,测试一下java环境是好的,这就不提了,接着说无法加载,以为是Java有问题,但是验证OK,就又找了一个helloworld试试,这下感觉是Java了,不过我又忍不住自己写一个helloworld,发现竟然没有任何问题,我就蒙了。。。
最后对比发下。。。原来是之前的两个Java都有包名,因为是想直接跑的,所以直接复制。。。删除包名就OK了,和idea一样了;本来还以为两个类,命令行会报错。。。结果我想多了。。幸好没有重新装Java不然所有程序都要完蛋。。。
继续说内部类,内部可以访问外部,但是外部内部的变量一样时,就会只访问自己的,可以通过this来访问外部和自己一样的变量。
静态内部类是 static 修饰的内部类,静态基本上与之前类似吧,比如说不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问,也有一个好处就是 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();
方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。
继承,之前说过概念了,直接说一下好处吧,就是减少代码的重复,增加代码的复用
子类可以直接继承父类的属性方法
快捷键很方便
生成的子类,空壳,但是测试类可以直接调用
父类的私有属性,子类不可以使用的
然后就是方法重写,继承的父类方法不满意,则自己写会被优先调用
这里有一个顺序,也就是先执行父类属性,然后是构造方法,接着是子类的属性,构造方法
明日计划的事情:
调整好状态,结束语法基础,进入任务一。。。。
遇到的问题及解决方法:
这几天事多,没深入学习,问题不大。
收获:
Java的方法继承概念
评论