当前位置: 首页 > 知识库问答 >
问题:

检查Java中getter和setter的可用性

方季同
2023-03-14

我有一个带有私有变量bookName(类型:string)、bookPrice(类型:int)、authorName(类型:string)的类Book,我为这些私有变量包含了适当的getter和setter方法

另一个类TestBook创建有主方法。我需要从用户获得详细信息bookName,bookPrice,authorName。

对象,并使用设置器为其属性赋值。也可以使用getters方法打印输出。

我写了整个代码,但失败了。

Fail1:检查bookName属性的getter/setter的可用性Fail2:检查bookPrice属性的getter/setter的可用性Fail3:检查authorName属性的getter/setter的可用性

book.java

 public class  Book {

         private String bookName;
         private int bookPrice;
         private String authorName;

         //getters

         public String getbookName(){
             return bookName;
         }

        public String getauthorName(){
              return authorName;
        }
        public int getbookPrice(){
            return bookPrice;
        }

       //setters


        public void setbookName(String newName){
             this.bookName = newName;
        }
        public void setbookPrice(int bokPrice){
            this.bookPrice = bokPrice;
        }
        public void setauthorName(String author){
            this.authorName = author;
        }


    }

testbook.java

 import java.util.Scanner;

     class TestBook {

         public static void main(String[] args){
         Scanner my = new Scanner(System.in);

         String name1,name2;
         int num;

        // Getting user input

        System.out.println("Enter the Book name:");
        name1 = my.nextLine();

        System.out.println("Enter the price:");
        num = my.nextInt();

        String re = my.nextLine();

        System.out.println("Enter the Author name:");
        name2 = my.nextLine();

        //Setting values of private variable using setters

        Book myObj = new Book();
        myObj.setbookName(name1);
        myObj.setbookPrice(num);
        myObj.setauthorName(name2);

        //Printing values using getters

        System.out.println("Book Details");
        System.out.println("Book Name :"+myObj.getbookName());
        System.out.println("Book Price :"+myObj.getbookPrice());
        System.out.println("Author Name :"+myObj.getauthorName());



        }
    }

共有1个答案

彭展
2023-03-14

getbookname()应为getbookname()。对于所有getter和setter来说,setbookname()应该是setbookname()等等。这是正确的Java约定。我只能假设你的测试人员正在寻找的标准。

 类似资料:
  • 问题内容: 始终建议使用getter / setter访问私有变量。为什么最好将它们声明为public并对其进行访问。无论如何,我们正在使用getter和setter访问它? 问题答案: @mre的回答非常好,您的问题很重要。总结一下:您将对象的字段设置为私有,以控制其他对象使用它的方式。您的对象使用setter来: 限制和验证传递给设置器的数据 隐藏其内部数据结构(服务对其他对象感兴趣,而不是服

  • 有两种类型的对象属性。 第一种是 数据属性。我们已经知道如何使用它们了。到目前为止,我们使用过的所有属性都是数据属性。 第二种类型的属性是新东西。它是 访问器属性(accessor properties)。它们本质上是用于获取和设置值的函数,但从外部代码来看就像常规属性。 Getter 和 setter 访问器属性由 “getter” 和 “setter” 方法表示。在对象字面量中,它们用 get

  • 问题内容: 案例A 不遵循Getter&Setter约定 human / human.go main / main.go 案例B 遵循getter和setter约定 main / main.go 以下约定的问题是,在提供其字段名称时无法实例化该结构。我想使用约定,但是我只能使用私有访问。 问题答案: 实例化结构(或对象,采用面向对象的语言)时,无论如何都不应指定私有字段的值。但是,提供可能以私有字

  • 问题内容: 请原谅它的长度,但是这里有两个程序,两者完全相同,但是一个有一个没有setter,getter和构造函数的程序。 我之前已经学过一个基本的C ++类,并且不记得其中的任何一个,而现在我还没有看到它们的意义,如果有人可以用拉面的术语来解释它们的话,我将不胜感激。目前,它们似乎不过是浪费空间,以使我的代码看起来更长,但是老师说它们很重要(到目前为止,就是这样)。 提前致谢!现在是代码:Mi

  • 利用 getter/setter 可以拦截操作对象的属性,在设置属性前或获取属性前做一些事情。 1. getter get语法将对象属性绑定到查询该属性时将被调用的函数。(MDN) // 语法 var 对象 = { get 属性名() { // 做一些事情 balabala return 值; } }; getter 在获取一个属性时被调用,同时返回 getter 的返回

  • 假设我有一个类Things,它包含许多不同的实例变量。我为它们分别创建了单独的setter和getter方法。如果我想创建另一个存储things'class'的class2,那么为things类中的实例变量创建额外的setter和getter方法是很好的编码方法。另外,假设我有另一个使用class2的class3,那么重复setter和getter方法会产生高耦合吗?