java关于访问控制的问题

zr_dixuexiongying 2008-01-29 04:45:27
class Employee
{
private String name;
private int age;

public Employee(String name1,int age1)
{
name = name1;
age = age1;
}
}

class Worker extends Employee
{
private char category; //级别
private boolean jintie; //津贴

public Worker(String name1,int age1,char category1,boolean jintie1)
{
super(name1,age1);
category = category1;
jintie = jintie1;
}
}

class Officer extends Employee
{
private boolean nianzhongjiang;
private boolean chetie ;

public Officer(String name2,int age1,boolean nianzhongjiang1,boolean chetie1)
{
super(name2,age1);
nianzhongjiang = nianzhongjiang1;
chetie = chetie1;
}
}

public class Demo12
{
public static void main(String[] args)
{
Worker worker = new Worker("约翰",24,'B',false);
System.out.println("工人信息:");
System.out.println("名字:"+worker.name);
System.out.println("年龄:"+worker.age);
System.out.println("级别:"+worker.category);
if(worker.jintie)
System.out.println("有津贴");
else
System.out.println("无津贴");

Officer officer = new Officer("John",22,true,true);
System.out.println("办公室信息:");
System.out.println("姓名:"+officer.name);
System.out.println("年龄:"+officer.age);
if(officer.nianzhongjiang)
System.out.println("有年终奖");
else
System.out.println("没有");
if(officer.chetie)
System.out.println("有");
else
System.out.println("无");
}
}

我把变量设为private 怎么抱错啊!按道理说将变量设为私有,通过公有的构造函数可以访问啊!
...全文
43 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
somus 2008-01-29
  • 打赏
  • 举报
回复
多谢,领教了












www.mysupersoft.com/allguides/rmvb_to_avi_converter
zr_dixuexiongying 2008-01-29
  • 打赏
  • 举报
回复
class Employee
{
private String name;
private int age;

public Employee(String name1,int age1)
{
name = name1;
age = age1;
System.out.println("名字:"+name);
System.out.println("年龄:"+age);
}
}

class Worker extends Employee
{
private char category; //级别
private boolean jintie; //津贴

public Worker(String name1,int age1,char category1,boolean jintie1)
{
super(name1,age1);
category = category1;
jintie = jintie1;
}
}

class Officer extends Employee
{
private boolean nianzhongjiang;
private boolean chetie ;

public Officer(String name2,int age1,boolean nianzhongjiang1,boolean chetie1)
{
super(name2,age1);
nianzhongjiang = nianzhongjiang1;
chetie = chetie1;
}
}

public class Demo12
{
public static void main(String[] args)
{
Worker worker = new Worker("约翰22",24,'B',false);
System.out.println("工人信息:");

System.out.println("级别:"+worker.category);
if(worker.jintie)
System.out.println("有津贴");
else
System.out.println("无津贴");

Officer officer = new Officer("John",22,true,true);
System.out.println("办公室信息:");

if(officer.nianzhongjiang)
System.out.println("有年终奖");
else
System.out.println("没有");
if(officer.chetie)
System.out.println("有");
else
System.out.println("无");
}
}


我如果把它这样改了,怎么还抱错啊!不是worker类的对象难道不能访问本类的私有成员吗?

Demo12.java:48: category 可以在 Worker 中访问 private
System.out.println("级别:"+worker.category);
Demo12.java:49: jintie 可以在 Worker 中访问 private
System.out.println("名字:"+worker.jintie);

Demo12.java:57: nianzhongjiang 可以在 Officer 中访问 private
System.out.println("名字:"+officer.nianzhongjiang);

Demo12.java:61: chetie 可以在 Officer 中访问 private
System.out.println("名字:"+officer.chetie);
huayiluo 2008-01-29
  • 打赏
  • 举报
回复
Demo12.java:45: name 可以在 Employee 中访问 private
System.out.println("名字:"+worker.name);

大哥,是这样的。首先一个private int a 他属于当前类。
如果你用new 出来一个对像去访问a这个变量是不行了。如果可以访问那就不是你public 出来一个属性吗?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧