java学习第三天

交完论文了跟我说得下个礼拜才能返回来,那我今天回学校干嘛。。。
真是的,我去图书馆接着看java吧。基础知识直接跳过去吧有个for循环可以按照结构体参数循环是有点像python的for x in range 的
然后就是基本的面向对象方法,哦,真相python,那个this和self不是一样的东西嘛
书里有个地方直接调用的a,我还注释写上这个地方为啥不用this.a,结果往后翻了翻才讲到this,原来是超纲了,那没事了打扰了告辞

我想吐槽的是,实例一个类,需要 student s = new student的结构,你先定义这个s是个student类所以前面要写,然后他是个啥?还要new一个对象,这在python里写好一个类直接就a=pet(),有参的放参没参的空着多方便啊

还有就是,默认构造方法,python里参数一大堆,在这个类构造的时候用一个__init__函数就写好了,当你生成一个类的时候执行这个默认构造方法,然后你输入的参数,可以自己定义也可以写默认值,编辑一个新类的时候按照顺序依次写下想改变的值就好了,也可以跳着把想改的参数写下来改。反观java呢?首先你必须有一个构造方法,哦听说还可以省略默认给你写一个,行,加分。然后他讲到构造方法的重载,额,,一般情况我们只用参数多的那个方法吧。。不用的参数默认为0就行了(也许有别的应用场景导致两套方法开局不一样呢,算你过关)然后就是java你写了构造方法之后不允许你无参调用,必须再写一个无参的构造方法,比如我写person(int age){一大堆}然后我想写个新的就不能用person p1= new person()了,因为构造方法必须有参数,这点python里面直接用init构建好了,有内容就写,没内容就不用写(当然如果有内容需要输入你没写也会报错的)

我仔细的想了想python这里的优点只是能在把参数关联在类实体上以外多了个默认值而已。。好像java只是在这个地方没办法写默认值,其他的,该调用参数还是调用,不用调用的就不用写成构造方法了。

等会,好像没那么简单,后面一个槽点是如果想在有参的构造方法中实现该函数本身默认调用的东西,需要在构造方法中添加一个this(); 说明在调用有参方法也干了无参的默认工作,所以这样上述的表示在python中直接一个__init__函数把需求值设成一个默认值,如果你不写表示没这个值,写了就给他改,用不着像书里这样在有参的构造方法中通过this函数进行初始化调用。嗯这是体现python优越性的一点

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值