学习java遇到的问题(五)public 修饰符
要点:
-
一个Java源文件中只能有一个public类
-
public是java的访问修饰符,意为“公有的”,可以被任何成员访问。
错误代码:
class Example{
public class Phone{
public void call(){
System.out.println("打电话");
}
public void sendMessage(){
System.out.println("发短信");
}
}
public class IPhone extends Phone{
@Override
public void call(){
System.out.println("显示头像");
System.out.println("显示归属地");
System.out.println("打电话");
}
}
public class Demo01{
public static void main(String[] args){
Phone p = new Phone();
p.call();
p.sendMessage();
System.out.println("---------------");
IPhone ip = new IPhone();
ip.call();
ip.sendMessage();
}
}
}
报错:
Example.java:2: 错误: 类重复: Example
public class Example{
^
Demo01.java:20: 错误: 无法从静态上下文中引用非静态 变量 this
Phone p = new Phone();
^
Demo01.java:24: 错误: 无法从静态上下文中引用非静态 变量 this
IPhone ip = new IPhone();
^
Demo01.java:19: 错误: 内部类Example.Demo01中的静态声明非法
public static void main(String[] args){
^
修饰符 'static' 仅允许在常量变量声明中使用
4 个错误
正确代码:
//class Example{
//public
class Phone{
public void call(){
System.out.println("打电话");
}
public void sendMessage(){
System.out.println("发短信");
}
}
//public
class IPhone extends Phone{
@Override
public void call(){
System.out.println("显示头像");
System.out.println("显示归属地");
System.out.println("打电话");
}
}
public class Demo01{
public static void main(String[] args){
Phone p = new Phone();
p.call();
p.sendMessage();
System.out.println("---------------");
IPhone ip = new IPhone();
ip.call();
ip.sendMessage();
}
}
//}
输出:
打电话
发短信
---------------
显示头像
显示归属地
打电话
发短信