以下是在练习TreeSet时练习写的代码,能够正常编译执行。如下标红的地方是突然有疑惑的地方,不是private修饰的成员变量不能直接访问吗?这不是直接访问了吗?老师在视频里也是这么写的啊,确实能执行,这是为什么呢?望高手解答
/*
使用泛型,把数据存入TreeSet集合中
*/
import java.util.*;
class GenericDemo
{
public static void main(String[] args)
{
TreeSet<Person> ts=new TreeSet<>();
ts.add(new Person("a1",10));
ts.add(new Person("a2",20));
ts.add(new Person("a3",30));
ts.add(new Person("a3",30));
for(Iterator<Person> it= ts.iterator();it.hasNext();)
{
it.next().sop();
}
}
}
class Person implements Comparable<Person>
{
private String name;
private int age;
Person(String name,int age)
{
this.name=name;
this.age=age;
}
public String getName()
{
return this.name;
}
public int getAge()
{
return this.age;
}
public int compareTo(Person p)
{
int num=this.age-p.age;
if(num==0)
{
return this.name.compareTo(p.name);
}
return num;
}
public void sop()
{
System.out.println(this.name+"..."+this.age);
}
}
|