Golang与Java私有方法与公有方法的实现对比
一、 在 Java 中
类的方法可以使用不同的访问修饰符进行修饰,最常见的是 private(私有)和 public(共有)。
1. 私有方法(private methods):
私有方法使用 private 修饰符进行修饰,只能在声明它们的类内部访问,无法从类外部或子类中访问。私有方法通常用于封装类的内部实现细节,对于外部的调用方来说是不可见的。
以下是一个示例:
public class MyClass {
private void privateMethod() {
// 私有方法的实现
}
public void publicMethod() {
// 调用私有方法
privateMethod();
}
}
在上面的示例中,privateMethod() 是一个私有方法,只能在 MyClass 类内部调用。publicMethod() 是一个公有方法,可以从类外部访问,并在其中调用私有方法。
2. 公有方法(public methods):
公有方法使用 public 修饰符进行修饰,可以在任何地方都能访问到这些方法,包括其他类和子类。
以下是一个示例:
public class MyClass {
public void publicMethod() {
// 公有方法的实现
}
}
在上面的示例中,publicMethod() 是一个公有方法,可以从任何地方都能访问到。
总结:
(1)私有方法使用 private 修饰符进行修饰,只能在声明它们的类内部访问。
(2)公有方法使用 public 修饰符进行修饰,可以在任何地方都能访问。
请注意,这里只是对私有方法和公有方法的简单介绍。Java 还有其他访问修饰符,如 protected(受保护的)和默认访问修饰符(没有明确的修饰符),它们在不同的访问上下文中有不同的可见性。
二、在 Golang中
没有类的概念,而是使用结构体(struct)和方法来组织代码。Go 语言中的私有方法和公有方法通过命名约定来实现。
1. 私有方法:
在 Go 语言中,没有像 Java 中的 private 修饰符来标识私有方法。相反,使用命名约定来表示私有方法,即方法名的首字母小写。
以下是一个示例:
type MyStruct struct {
// 私有字段
privateField int
}
func (s *MyStruct) privateMethod() {
// 私有方法的实现
}
func (s *MyStruct) PublicMethod() {
// 调用私有方法
s.privateMethod()
}
在上面的示例中,privateMethod() 是一个私有方法,通过将方法名的首字母小写来表示。只有在 MyStruct 结构体的方法集合内部可以访问该方法。
2. 公有方法:
公有方法在 Go 语言中通过将方法名的首字母大写来表示,即以大写字母开头的方法是公有的。
以下是一个示例:
type MyStruct struct {
// 公有字段
PublicField int
}
func (s *MyStruct) PublicMethod() {
// 公有方法的实现
}
在上面的示例中,PublicMethod() 是一个公有方法,因为它的方法名的首字母是大写的。其他包中的代码可以访问和调用该方法。
总结:
(1)Go 语言中没有类的概念,使用结构体和方法来组织代码。
(2)私有方法通过将方法名的首字母小写来表示,只能在同一包内部访问。
(3)公有方法通过将方法名的首字母大写来表示,可以在其他包中访问和调用。
请注意,这里只是对私有方法和公有方法的简单介绍。还有其他访问控制相关的机制,如导出和未导出标识符,以及包级别的可见性规则。这些机制在编写实际的 Go 代码时需要遵循。