总结Java和Python面向对象的不同点

您所在的位置:网站首页 java的this和python的self 总结Java和Python面向对象的不同点

总结Java和Python面向对象的不同点

2023-07-04 15:31| 来源: 网络整理| 查看: 265

注意!本文章适合掌握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