错误:实例成员'tomato'不能用于'汉堡'类型

时间:2018-02-27 15:11:06

标签: swift xcode

1.我的代码

class hamburger {
var tomato: String
var patty: String
var bread: String
var number: Int
init(_ tomato: String, _ patty: String, _ bread: String, _ number: Int) {
    self.tomato = tomato
    self.patty = patty
    self.bread = bread
    self.number = number
}
init() {
    self.tomato = "tomato"
    self.patty = "patty"
    self.bread = "bread"
    self.number = 10
}
}   
let sandwich = hamburger("texas" , "iii" , "iii" , 10)
print(hamburger.tomato)

2.error message

Playground execution failed:

error: dotinstall.playground:342:7: error: instance member 'tomato' 
cannot be used on type 'hamburger'
print(hamburger.tomato)
  ^~~~~~~~~ ~~~~~~

3.我遵循的样本

enter code here// Class

class User {
let name: String // property
var score: Int
init(name: String, score: Int) {
init(_ name: String, _ score: Int) {
    self.name = name
    self.score = score
}
init() {
    self.name = "bob"
    self.score = 30
 }
}

//let tom = User(name: "tom", score: 23)
let tom = User("tom", 23)
print(tom.name)
print(tom.score)

let bob = User()
print(bob.name)
print(bob.score)

我在3之后编码为1,但是我收到了类似2的错误消息。

我要解决的问题

·无论如何都要跟这个样本一样

·研究了基础的类语法,初始化器,网站上的实例

·正在寻找错误

·我检查了属性的顺序

即使我只是按照示例代码,我也不知道为什么它不起作用。

请给我解决方案的提示。

感谢

1 个答案:

答案 0 :(得分:0)

您在面向对象编程方面犯了一个错误。使用hamburger.tomato,您尝试访问 Class 汉堡包的属性番茄,而不是 Object ,这是三明治。所以解决方案是:

print(sandwich.tomato)

将来,您可能想要做的是更好地设计代码样式。类(汉堡)以大写字母开头,而类的对象或实例(三明治)以小写字母开头。