【问题标题】:Accessible and Modifiable data?可访问和可修改的数据?
【发布时间】:2021-01-14 05:23:27
【问题描述】:

就从课外的可访问性而言,可变等级中的可访问数据和可修改数据有什么区别?

这是我在课堂外调用grade方法的代码:

package studenttester;

public class student {

    private String name;
    private int age;
    private String grade;
    private double average;
    private boolean disability;
    
    
    private void printStudentInfo(){ //Data Encapsulation is methods of the public interface provide access to private data, while hiding implementation. 

        System.out.println("Name: "+name+",Age: "+age+",Grade: "+grade+",Average: "+average +" Disability: "+disability);
    } 
    
    public void setGrade(String newGrade){
        grade=newGrade;
    }
    
    public String getGrade(){
        return grade;
    }
 }
    public class StudentTester{
public static void main(String[] args){
       student S1 = new student(); 
       student S2 = new student(); 

       S1.setGrade("11");
       System.out.println("Student one: " +S1.getGrade()+", Student two: "+S2.getGrade());

       /* The instance variables are name, age, grade, average, disability and those are the variables that the object S2 contains. The object’s attributes are : name, age, grade, average, disability. 

       S1 attributes values : name: null , age:0, grade:"11", average : 0.0, disability: false
       S2 attributes values : name: null , age:0, grade:null, average : 0.0, disability: false */

}
}

【问题讨论】:

    标签: java class oop


    【解决方案1】:

    等级是private,因此就学生班级之外的直接可访问性而言,它是不可访问的。因此,如果我们有一个 Student 类型的变量 s1,那么尝试 s1.grade 将不起作用。虽然,由于我们有一个public getter 方法getGrade,它实际上可以被其他类访问。修改也一样,所以在课堂外没有s1.grade = "11";,但你可以做s1.setGrade("11")

    【讨论】:

      【解决方案2】:

      可访问的数据意味着您只能访问。我们只能查看或访问无法修改或更改的数据

      而 modifiable 可以修改或更改。

      您可以说可访问的数据是常量,而可修改的数据是变量

      【讨论】:

      • 你不能说可访问的数据是常量,而可修改的数据是变量。如果我有一个声明为 final 的变量怎么办?如果我有一个声明为公共的常量怎么办?这里的主要问题涉及访问修饰符,而您的回答根本没有解决这个概念。
      • 这只是对新手的解释,有很多事情可以做
      • 你的回答实际上是错误的,你试图为它的错误找借口,因为它是“为了新手?”访问修饰符对初学者来说不是一种方式,而对有经验的程序员来说是一种不同的方式。最重要的是,您对问题的核心问题给出了零解释。
      • 我们可以为此奋斗一整天.....它是对是错,但如果你理解这个概念,这就是全部...... getter方法用于获取值,setter方法是你设置其中的所有值
      猜你喜欢
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-06
      • 2018-02-05
      • 2012-01-27
      • 1970-01-01
      相关资源
      最近更新 更多