这些天我正在使用 CS61b。我被访问控制的讲座困住了。我的变量first和类IntNode上的“private”关键字无法正常工作。在谷歌上搜索但一无所获。public class SLList { private IntNode first; /** * If the nested class never uses any instance variables or methods of the outer * class, declare it static. */ private static class IntNode { public IntNode next; public int item; public IntNode(int i, IntNode n) { next = n; item = i; } } public SLList(int x) { first = new IntNode(x, null); } public void addFirst(int x) { first = new IntNode(x, first); } public int getFirst() { return first.item; }/** ----------------SIZE---------------------- */ private int size(IntNode L) { if (L.next == null) { return 1; } return 1 + size(L.next); } public int size() { return size(first); }/**-------------------SIZE------------------- *//**---------------add LAST ------------------*//** how to solve null pointer expectation? */ public void addLast(int x) { IntNode p=first; while(p.next!=null){ p=p.next; } p.next=new IntNode(x, null); }/**---------------add LAST ------------------*/ public static void main(String[] args) { SLList L = new SLList(5); L.addFirst(10); L.addFirst(15); System.out.println(L.getFirst()); System.out.println(L.size()); L.addLast(20); L.first.next.next = L.first.next; /** <----- I can still get√ access to first. */ }}我预计会出现错误:first has private class in SLList,但我没有任何错误。
1 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
仅当类型可访问并且声明成员或构造函数允许访问时,引用类型的成员(类、接口、字段或方法)或类类型的构造函数才可访问:
(强调我的)
由于您的访问first
位于同一顶级类型内,因此您可以毫无问题、错误或任何其他情况地访问它。
添加回答
举报
0/150
提交
取消