Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用comparator在Java中访问类外的私有变量_Java_Sorting_Comparator - Fatal编程技术网

使用comparator在Java中访问类外的私有变量

使用comparator在Java中访问类外的私有变量,java,sorting,comparator,Java,Sorting,Comparator,在Java中,使用comparator很难弄清楚如何访问类外的私有属性。我正在使用一些在线代码作为参考。如果您将private更改为public,它会工作,但是我需要知道如何使它与设置为private的变量一起工作 // Java program to demonstrate working of Comparator // interface import java.util.*; import java.lang.*; import java.io.*; // A class t

在Java中,使用comparator很难弄清楚如何访问类外的私有属性。我正在使用一些在线代码作为参考。如果您将private更改为public,它会工作,但是我需要知道如何使它与设置为private的变量一起工作

// Java program to demonstrate working of Comparator 
// interface 
import java.util.*; 
import java.lang.*; 
import java.io.*; 

// A class to represent a student. 
class Student 
{ 
    private int rollno; 
    private String name, address; 

    // Constructor 
    public Student(int rollno, String name, 
                            String address) 
    { 
        this.rollno = rollno; 
        this.name = name; 
        this.address = address; 
    } 

    // Used to print student details in main() 
    public String toString() 
    { 
        return this.rollno + " " + this.name + 
                        " " + this.address; 
    } 
} 

class Sortbyroll implements Comparator<Student> 
{ 
    // Used for sorting in ascending order of 
    // roll number 
    public int compare(Student a, Student b) 
    { 
        return a.rollno - b.rollno; 
    } 
} 

// Driver class 
class Main 
{ 
    public static void main (String[] args) 
    { 
        Student [] arr = {new Student(111, "bbbb", "london"), 
                        new Student(131, "aaaa", "nyc"), 
                        new Student(121, "cccc", "jaipur")}; 

        System.out.println("Unsorted"); 
        for (int i=0; i<arr.length; i++) 
            System.out.println(arr[i]); 

        Arrays.sort(arr, new Sortbyroll()); 

        System.out.println("\nSorted by rollno"); 
        for (int i=0; i<arr.length; i++) 
            System.out.println(arr[i]); 
    } 
} 
//演示比较器工作的Java程序
//接口
导入java.util.*;
导入java.lang.*;
导入java.io.*;
//代表学生的班级。
班级学生
{ 
私家车;
私有字符串名称、地址;
//建造师
公立学生(int-rollno,字符串名称,
字符串地址)
{ 
this.rollno=rollno;
this.name=名称;
this.address=地址;
} 
//用于在main()中打印学生详细信息
公共字符串toString()
{ 
返回this.rollno+“”+this.name+
“”+此地址;
} 
} 
类Sortbyroll实现了Comparator
{ 
//用于按的升序排序
//卷号
公共整数比较(学生a、学生b)
{ 
返回a.rollno-b.rollno;
} 
} 
//驾驶员等级
班长
{ 
公共静态void main(字符串[]args)
{ 
学生[]arr={新生(111,“bbbb”,“伦敦”),
新生(131,“aaaa”,“纽约”),
新生(121人,“中交”、“斋浦尔”)};
System.out.println(“未排序”);

对于(inti=0;i您应该创建一个公共getter方法,该方法返回私有字段值

public int getRollno(){return this.rollno;}

并使用它从外部访问字段

这是否回答了您的问题?谢谢,我会仔细查看,看看是否回答了!我无法使用该网页。无法正确理解如何将其添加到此代码中。在已接受的答案中,解决方案3可能是您的最佳选择。嘿,我应该将其放在代码中的什么位置?我尝试了把它放在方法中,但不起作用。你应该把它放在学生类中。当我把它放在学生类中时,我会出错。“Main.java:73:error:”;“预期”