2016-04-03 66 views
-2

我曾与下面的方法,并与下面的类以下LinkedList访问私有列表

public class Class1 { 
    private LinkedList<Integer> list; 

    Class1() { 
     list = new LinkedList<Integer>(); 
    } 
    public void add(int num){ 
     list.add(num); 
    } 

    public static void main() { 
     Class1 obj = new Class1(); 
     //what should i do to add integers to the private list 
     obj.add(...); 
     mean(obj)??? 
    } 
} 

怎么可能访问私有列表?我怎样才能打印清单?我想计算列表的平均值和方差?我怎样才能访问私人列表?

+0

将其公开。 – Amit

+0

:)当然这不是我的愿望。我想要保密。 –

+1

为什么?你想**公共访问**到列表中。什么让你想要它是私人的? – Amit

回答

2

使用getter方法得到的值:

public LinkedList<Integer> getList(){ 
    return this.list; 
} 

,您可以访问值通过obj.getList()

或者点击ctrl + alt + s + r(eclipse自动生成)

0

将公共方法添加到class1以交互并从Arraylist中提取所需的信息。示例方法add(int num)getAverage()

Then Class1 myClass = new Class1(); myClass.add(1);

+0

是的,我已添加方法添加。在主函数中,我创建我的对象obj和obj.add()我添加数字。但是,我怎样才能打印他们呢? –

+0

例如,如果我为平均平均数创建一个函数,并且我想将一个ist作为参数。我应该在平均函数调用中添加什么,平均值(obj)? –

+0

那么您可以在Class1中使用该函数的2种方法,因此您只需调用obj.print()..您可以在该方法中使用system.Out.println。或者你可以返回列表,然后从你的主要方法打印 –

2
Encapsulation is one of the four fundamental OOP concepts. The other three are inheritance, polymorphism, and abstraction. 

和简单的参考链接:http://www.tutorialspoint.com/java/java_encapsulation.htm

创建getter和setter

private LinkedList<Integer> list; 

    public LinkedList<Integer> getList() { 
     return list; 
    } 

    public void setList(LinkedList<Integer> list) { 
     this.list = list; 
    } 
+0

你当然可以通过添加一个公共getter来打破封装,这个公共getter可以让你的列表的原始副本随意被任何其他类修改*? –

+0

@AndrewRegan也是如此,封装的主要目的 –