正文每天有点收获才是好事不是?今天下雪,斗志受到了影响,所以好好反省,然后总结下今天干了些啥??? OK 下面进入正题:
第一点:下载并且破解了JetBrains CLion 2017.3
这里不用多说,上图为证,另外大家可以参考这篇文章:
【Problem Solution】Mac 下载的压缩文件只有很多小文件,没有dmg + JetBrains IntelliJ IDEA破解--已解决
其中的方法不仅是对Java的IDLE有用,对于CLion也是一样的,这很神奇,一个破解的办法直接干翻全套软件我也是服气。没错,对于CLion,你直接按照IntelliJ IDEA的破解办法来。直接用一样的破解文件,用一样的配置文件语句(没错,我也纳闷,C++的编译器,居然最后添加一句javaagent?)
对了。我的破解参考这篇文章,要不是他说javaagent那个,我是真的没辙!!!
另外就是,我今天发现了一个好办法,可以比较省心的把压缩的dmg镜像文件找回来。
HustWolf:JetBrains.CLion.2017.3.1.MacOSX.Incl.KeyMaker-DVT zhangzhaobo$ cp -a d274dje*/d-000* Jc/
HustWolf:JetBrains.CLion.2017.3.1.MacOSX.Incl.KeyMaker-DVT zhangzhaobo$ cd Jc/
HustWolf:Jc zhangzhaobo$ ls
d-000je.r00 d-000je.r07 d-000je.r14 d-000je.r21 d-000je.r28
d-000je.r01 d-000je.r08 d-000je.r15 d-000je.r22 d-000je.r29
d-000je.r02 d-000je.r09 d-000je.r16 d-000je.r23 d-000je.r30
d-000je.r03 d-000je.r10 d-000je.r17 d-000je.r24 d-000je.r31
d-000je.r04 d-000je.r11 d-000je.r18 d-000je.r25 d-000je.rar
d-000je.r05 d-000je.r12 d-000je.r19 d-000je.r26
d-000je.r06 d-000je.r13 d-000je.r20 d-000je.r27
没错,把所有的小压缩包解压后,直接在终端里面一个命令解决所有问题。简直神器!!!
第二点:更懂得了继承与多态
继承的初始目的:
其实简单的说,继承也就是提取共性,然后把共有的特性集合作为父类,子类根据自身需求来继承。
多态的由来:
多态即动态绑定(后期绑定),在编写某些方法或者一些代码的时候,我们并不知道到底要执行哪个子类, 那么我们把父类放到那个原定的位置,然后在真正使用的时候把一个子类的实例放进去,这样的话就可以实现多态性的调用这一段代码,而不用考虑其到底是否兼容这个类型/实例
据我所知,C++的动态绑定好像跟Java很像啊,都是站位的时候父类顶上去,实际使用的时候上一个子类顶锅,but也许虚函数也是吧。我那儿没学好啊!
下面就着实的体现了多态之美!!!
class base{
public void walk(){
System.out.println("I am walking! I am base!");
}
public void run(){
System.out.println("I am running, I am base!");
}
}
class Son extends base{
public void run(){
System.out.println("I am happy running,I am Son");
}
}
public class TestArray {
public static void test(base X){
X.run();
X.walk();
}
public static void main(String[] args) {
Son newson=new Son();
test(newson);
}
}
下面是结果:
Java是多么的聪明啊!!
第三点:更懂得了import 和 package的用法
首先,import就是用来导入已经存在的类的。我本来是在Mac上的JetBrains IntelliJ IDEA解决了今天的一个练手的超小型项目的,然后我想试试在别的没有IDLE的环境该如何调试程序的时候。我该怎么导入我的已经存在的类?Class!因为我之前为了学习package 把所有的辅助的类都打包到了com.yywzzb.oop这个层级下面,导入的时候我当然是直接import :
import com.yywzzb.oop.MainMenu;
import com.yywzzb.oop.Price;
import com.yywzzb.oop.Customer;
那么如果我在树莓派上没有package?而且树莓派好像也不是很支持我打包的样子,所以直接所有的文件都在一个文件夹下。我思前先后了好久,一直想不到该怎么导入同一个文件夹下的类。直接import 名字么?但是这么测试的时候失败了。可恶!! 所幸,后来上网查,发现思路就错了。同一个文件夹下的所有的类默认都在PATH中,或者说当前的path就是工作目录,你的Class在这个文件夹下,不就一直处于path可以检测到的地方么。所以陷入思维怪圈了。还好,众多网络大佬能相隔几年,地处千里之外给我指点!!美滋滋!!
至于package,我真没感觉有啥很特别的。大概就是一个分层次的打包器???把你的文件不用自己一个个安排,直接用域名形式来决定层级,在编码初期就分门别类的摆好所有的Class文件,等待后面import,调用!看,这就是我的一个子文件的存储路劲:
/Users/zhangzhaobo/IdeaProjects/Test_of_Java/
out/production/颜雨薇的Shopping System/com/yywzzb/oop/Customer.class
重要的是后面那一截,看到/com/yywzzb/oop/Customer.class的时候想必你就明白了。看这么那么复杂的命名方式,真的只是用来好安排文件夹名字以及层次的,真的没有别的深意!
正文之后搞完收工,睡觉了!明天早起肝Java