1创建个Singer类,类中定义私有属性age和私有方法sing(),个公有方法work()在该类的main函数中创建 Singer对象,调用属性和方法
2.再创建一个test类,在其中创建Singer对象,调用Singer对象的私有属性,私有方法和公共方法,查看结果
首先,我们创建一个名为Singer的类,代码如下:
public class Singer {
private int age;
public Singer(int age) {
this.age = age;
}
private void sing() {
System.out.println("唱歌ing...");
}
public void work() {
System.out.println("工作ing...");
sing(); // 在公有方法work()中调用私有方法sing()
}
public static void main(String[] args) {
Singer mySinger = new Singer(25);
System.out.println("年龄是 " + mySinger.age);
mySinger.work();
}
}
在Singer类中,我们定义了一个私有属性age和一个私有方法sing(),还定义了一个公有方法work()。在公有方法work()中,我们调用了私有方法sing()。这样,sing()方法就可以通过work()方法间接调用,但它仍然是私有的,外部无法直接访问。
在main函数中,我们创建了一个名为mySinger的Singer对象,并为其age属性赋值。然后,我们调用了mySinger的work()方法,输出了工作和唱歌的信息。
接下来,我们再创建一个名为test的类,代码如下:
public class test {
public static void main(String[] args) {
Singer mySinger = new Singer(30);
// 访问私有属性age
// 编译错误:The field Singer.age is not visible
// System.out.println("年龄是 " + mySinger.age);
// 调用私有方法sing()
// 编译错误:The method sing() from the type Singer is not visible
// mySinger.sing();
// 调用公有方法work()
mySinger.work();
}
}
在test类中,我们创建了一个名为mySinger的Singer对象,并尝试访问其私有属性age和私有方法sing(),但由于它们都是私有的,所以会导致编译错误。然后,我们调用了mySinger的公有方法work(),输出了工作和唱歌的信息。
总之,私有属性和方法只能在类内部访问,而公有属性和方法可以在类外部访问。如果要访问私有属性和方法,可以通过公有方法来间接访问。