总结Java和Python面向对象的不同点 |
您所在的位置:网站首页 › java的this和python的self › 总结Java和Python面向对象的不同点 |
注意!本文章适合掌握Java面向对象基础,以及了解Python一定基础知识的人阅读,本人也在学习Python中,让我们一起加油学习吧,如有不对的地方,欢迎指出!虚心受教 废话不多说,我只讲不同的地方,基本上面向对象的概念都是一样的,主要在于语法上有区别 一、创建对象 java中 是直接创建一个类文件,一般来说一个文件就对应着一个类 public class 类名{ 。。。}然后在这个类里写成员属性和方法 python 中 class 类名:。。。然后在里面写方法 二、构造 java中 public 类名( ){ } 这是无参构造 public 类名(参数列表){ } 这是有参构造 Python中 def __init__(self, 参数列表): 这个就相当于java的有参构造,有没有无参构造目前还不知道,注意,self是Python中特有的,必须要写 三、成员属性 java中 在分析出一个类的属性有哪些之后,就可以直接定义属性了,必须要标明类型 private String name; private double price; private String introduce; Python中 和java很大的区别就是成员属性是在构造里定义的,不需要拿出来单独定义 def __init__(self, model): self.model = model self.bullet_count =0 可以看到,参数需要在创建时确定的可以写在参数列表里,方便创建对象时直接填写参数,不需要直接定义的可以直接赋值 四、成员方法 Java中 public int getId() { return id; } public void setId(int id) { this.id = id; } Python中,就是函数的写法 def add_bullet(self, count): self.bullet_count += count 五、this和self java中的this就相当于Python中的self,都是指向这个对象的 六、toString和__str__ java中可以在一个类中重写tostring方法,这样可以在控制台输出对象时查看对象的属性 @Override public String toString() { return "Ticket [name=" + name + ", price=" + price + ", introduce=" + introduce + ", time=" + time + ", id=" + id + "]"; } Python中则就是__str__ def __str__(self): return "[%s] 占地 %.2f"% (self.name,self.area) 同样是返回一个字符串 今天最后还有个问题没解决,不知道有没有大佬能帮我解决下 在Python中定义一个类,类中有一个列表属性,都赋值后,使用__str__查看信息,把对象打印在控制台,其他属性都是正常的值,可是列表显示的却是16位进制的字符串,Python版本3.6,求解答 class HouseItem: # 初始化方法 def __init__(self, name, area): self.name = name self.area = area # 显示信息 def __str__(self): return "[%s] 占地 %.2f"% (self.name,self.area) class House: def __init__(self, house_type, area): self.houser_type = house_type self.area = area # 剩余面积 self.free_area = area # 家具列表名称 self.item_list = [] def __str__(self): # Python能够自动将一对括号内部的代码连接在一起 return ("户型:%s\n总面积:%.2f[剩余面积:%.2f]\n家具:%s" % (self.houser_type,self.area,self.free_area,self.item_list)) def add_item(self, item): print("要添加%s" % item) # 判断家具面积大小 if item.area >self.free_area: print("%s 的面积太大,无法添加"% item.name) return # 添加家具 self.item_list.append(item) # 计算剩余面积 self.free_area -= item.area # 创建家具 bed = HouseItem("席梦思",4) chest = HouseItem("衣柜",2) table = HouseItem("餐桌",1.5) # 创建房子对象 my_home = House("2室1厅",60) my_home.add_item(bed) my_home.add_item(chest) my_home.add_item(table) print(my_home) 控制台输出结果 要添加[席梦思] 占地 4.00 要添加[衣柜] 占地 2.00 要添加[餐桌] 占地 1.50 户型:2室1厅 总面积:60.00[剩余面积:52.50] 家具:[, , ] |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |