python和java⾯向对象区别,总结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.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)
java python是什么意思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]
家具:[<__main__.houseitem object at>, <__main__.houseitem object at>, <__main__.houseitem object at>]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论