面向对象与程序编程

时间:2013-12-20 21:14:11

标签: oop

请有人向我解释一下吗?我读过和听过的关于OOP的一切都让它听起来像程序编程。帮助

2 个答案:

答案 0 :(得分:3)

我将在黑暗中拍摄并假设你是(a)第一次拾取编码,因为你正在上课或(b)第一次拾取编码,因为你感觉就像。无论哪种方式,很好的选择,这很有趣

无论哪种方式,你都是新手,你可能会从一种练习册(无论是在线还是在教室)编写一些代码。代码可能看起来像这样。

Assignment: populate a list with all prime numbers between 1 and 100

def makePrimeList():
    my_list = []
    for x in range(1, 100):
        if isPrime(x):
            my_list.append(x)
    return my_list

def isPrime(x):
    if x<2:
        return False
    for i in range(2,x):
        if not x%i:
           return False
    return True 

这种编程对于学习如何编码非常有用。它告诉你什么代码可以在非常基本的水平上做。但是,当你做更复杂的事情时,你将不得不使用OOP,并进行一些课程。

OOP的基本前提是你创建了一些类,然后用这些类做了些东西。类基本上是一种创建自己的对象的方式(因此面向对象编程中的“对象”)。例如,您可以创建一个Card类。这个类可能会有一些属性,例如Card.numberCard.suit来描述卡片。它在Python中看起来像这样:

Class Card:
    def __init__(self, number, suit):  #This method, called an __init__ method, creates a card
        self.number=number
        self.suit=suit

现在,我可以调用代码my_new_card = Card(4, "spades")来返回一张卡片。如果我在我的代码my_new_card.number中说过,它会返回4my_new_card.suit会返回"spades"。因此,正如您所看到的,OOP可以通过多种方式改变您的思考方式,并使用代码。有关类的更多信息可以在维基页面Classes上找到。我想到它的方式:一个类非常像listdict,因为你决定它是如何格式化的,以及你可以在其上标记的函数。就像,列表中包含.append()方法一样,您可以将其标记为Card类:

def doubleUp(card):
    card.number *= 2

所有这些方法都是您输入到该功能的卡的数量的两倍。没什么特别的,但这个概念还有很长的路要走。

无论如何,这是一个超级广泛的概述,上面的代码都没有经过测试,但它只是让你了解你的问题所涉及的大范围。查看此guide了解一些OOP知识。

答案 1 :(得分:2)

有许多文章解释了OOP和其他编程范例之间的区别。

例如为: http://saimaterial.wordpress.com/2007/09/14/1what-is-the-difference-between-object-oriented-programming-and-procedural-programming/

OOP vs Functional Programming vs Procedural

尝试在网上搜索“oop和程序编程之间的区别”,“oop和函数式编程之间的区别”等等。