实际现象
- 有些在java里面的概念, 没法在Go中一一对应( 标序号的地方 )
- class是一种很好的组织代码的手段, 期望在Go中也能较好地组织代码
相关代码
package com.hezhiming.mavenlearn;
public class Person {
private final String id;
private String name;
private int age;
private String gender;
// 1
public static final CLASS_PUBLIC = "PUBLIC";
public Person(final String id, final String name,
final int age, final String gender) {
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
}
private String privateInstanceMethod() {
return "private";
}
public String publicInstanceMethod() {
return "public";
}
private static String privateStaticMethod() {
return "private";
}
// 2
public static String publicStaticMethod() {
return "public";
}
/* getter/setter */
public String getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
type Person struct {
id string
name string
age int
gender string
}
// 类级别的public/private static final 变量
// 类级别的public static method
//
func (self Person) GetId() int {
return self.id
}
func (self *Person) SetName(value string) {
self.name = value
}
func test() {
p := Person{
id: "id1",
name: "name1",
age: 23,
gender: "f",
}
p.GetId()
}
1.没有必要java的概念跟go的概念一一对应
2.别把java的臭毛病带到go来