java 在public类ExciEncap中,定义包package1,定义属性public的data1,protected的data2,默认的data3,private的data4。定义方法printVar输出四个属性的值。在类中定义主方法,创建ExciEncap的对象,给四个属性赋值,然后调用方法printVar。 定义public测试类TestExciEncap1中,定义包package1,定义ExciEncap的对象,给四个属性赋值,然后调用方法printVar。 定义public测试类TestExciEncap2中,定义包package2,创建ExciEncap的对象,给四个属性赋值,然后调用方法printVar。
时间: 2023-06-06 13:05:35 浏览: 149
这是一个关于Java编程的问题,属于技术问题,可以回答。
ExciEncap类代码如下:
```
package package1;
public class ExciEncap {
public String data1;
protected String data2;
String data3;
private String data4;
public void printVar() {
System.out.println("data1 = " + data1);
System.out.println("data2 = " + data2);
System.out.println("data3 = " + data3);
System.out.println("data4 = " + data4);
}
public static void main(String[] args) {
ExciEncap obj = new ExciEncap();
obj.data1 = "Public Data";
obj.data2 = "Protected Data";
obj.data3 = "Default Data";
obj.data4 = "Private Data";
obj.printVar();
}
}
```
TestExciEncap1类代码如下:
```
package package1;
public class TestExciEncap1 {
public static void main(String[] args) {
ExciEncap obj = new ExciEncap();
obj.data1 = "Public Data";
obj.data2 = "Protected Data";
obj.data3 = "Default Data";
// Cannot access private data4
obj.printVar();
}
}
```
TestExciEncap2类代码如下:
```
package package2;
import package1.ExciEncap;
public class TestExciEncap2 {
public static void main(String[] args) {
ExciEncap obj = new ExciEncap();
obj.data1 = "Public Data";
// Cannot access protected, default, or private attributes
obj.printVar();
}
}
```
注意:ExciEncap类中的属性data3是没有修饰符的,表示当该属性没有访问修饰符时,它的可见性为包级别(即只能在包内被访问)。在TestExciEncap2类中,由于ExciEncap类和TestExciEncap2类不在同一个包内,因此只能访问可见性为public的data1属性。
阅读全文