java中的属性是什么意思?

时间:2015-07-16 02:07:16

标签: java

它与方法不同吗?类似数组有一个属性 - 长度,所以array.length给出数组的长度,而array.length()给出错误

5 个答案:

答案 0 :(得分:2)

属性/字段是类中的变量。例如:

public class Employee {
  private String name;
  private int salary;
  public getName(){return this.name};
}

在上面的课程中,namesalary是类的实例(类的对象)的属性,而getName()是一种方法。

答案 1 :(得分:1)

属性是描述对象的形容词,在这个例子中是#34;它有多少元素"。设置属性以定义对象实例的变量方面,可以是直接(如果允许),也可以是某些操作的结果,然后在使用对象时可以检查它们。

方法是提供用于对象做某事的动词,例如"添加新元素"。这些动作可以利用属性,也可以改变它们,以及做其他事情(创建者定义的任何目的)。方法也可以接受括号中的副词,这些副词会进一步影响它们的运作方式,从而使用"()";例如,在"中加入新元素"。

虽然方法是更复杂和通用的机制,但复杂的对象可能没有预先计算(缓存)" x.length"类型属性始终可用于检查,因此对象可能提供方法" x.length()"获取信息。该方法可能必须评估对象的复杂方面以找出" length",并设置它或者将其返回,模糊属性和更简单的方法使用之间的界限。

切换"字段","属性"和"属性":而技术术语"字段"非常具体地标识附加到对象的数据存储元素,术语"属性"被核心小组http://docs.oracle.com/javase/tutorial/information/glossary.html承认。与方法相比,属性更抽象,但在逻辑上与字段同义。在此比较中,与字段/属性在逻辑上不同,虽然相关,但是属性为#34; set是一个静态收集应用程序属性值的初始设置(为指定用途提供的代码集合),通常放在一个文件" .properties"命名并存储在应用程序商定的位置 - 尽管这些也可以收集在任何其他存储位置,如数据库。

答案 2 :(得分:0)

array.length正在访问对象内部的一个字段,而array.length()正在尝试调用一个方法调用length(),并且由于该方法不存在,它会给出错误

答案 3 :(得分:0)

要了解属性和方法,请考虑一个苹果。苹果可以是不同的颜色,如红色,黄色等。苹果也可以有不同的大小。这些特征,颜色和大小都是单个苹果的properties;他们描述了苹果。

方法不同。它描述了苹果可以的东西,比如成长和成熟。但是,某些方法也可以表示属性,并简化了对这些属性的读取。

例如,表示笔的对象可能会留下一定量的墨水。当请求剩余多少墨水时,笔对象需要验证是否有墨水,如果没有,则在返回墨水量之前重新填充笔。

要直接回答您的问题,属性和方法是非常不同的。属性保存有关对象的数据,但方法保存有关对象可以执行的操作的数据。类似于数组长度的东西是属性,因为它描述了数组本身,而不是数组可以做什么。

一些有用的术语的这个和其他定义给出了here

答案 4 :(得分:0)

用于属性的更好术语是字段。基本上,一个字段是一个变量,而一个方法就是你拥有" meat"你的代码对于这些示例,我将使用对象" Book"。

字段可以分类为"实例"变量意味着它们对于每个对象是不同的,或者它们可以被分类为"静态"变量,这意味着它们对项目是通用的。

private int pages;
private static int amountOfBooksInTheWorld;

页数特定于某本书,特定的"实例"书的对象。世界上的书籍数量显然不是一本书所特有的;因此,对于所有书籍来说,它都是静态的,通用的。实例变量通过声明objectname.variablename来调用,而静态变量则由classname.variablename调用。

javahandbook.pages
Book.amountOfBooksInTheWorld

现在针对您的第二个问题,方法,带括号的方法,通常分为以下几组:构造函数,访问器,增变器和静态方法。所有方法都有"参数"和"返回类型"。参数基本上是输入。返回类型是输出(如果有的话)。 objectname.method()调用方法,除非它们是静态的,它们由classname.method()调用。

构造函数是您用来创建对象的。他们通常是那些初始化"对象的所有实例变量,也就是说,它们基本上告诉它们它们的起始位置。这些方法没有返回类型。构造函数可能是其他方法中最不同的方法类型,但非常重要。

public Book(int p) {
    pages = p; //We use "=" to initialize our variables (left becomes the right)
}

在行动......

Book javahandbook = new Book(100); //A new book has been created!

访问器方法是其他类用于查找特定对象的实例变量的方法。它们指定一个返回类型:boolean(真或假的名字),浮点数(包括double和float的双精度返回类型),常规数字(整数返回类型,如byte,short,int或long) ),甚至是其他物体。返回类型是你得到的"返回"当方法完成它的事情。请记住,方法调用中引用的对象是"隐含参数",这意味着可以使用" this"来引用它。听起来很奇怪。我给你举个例子。

public int getPages() {
    return (this.pages);
}

在行动......

int test = javahandbook.getPages();
System.out.println(test); //This will return the amount of pages
//Note that what I did with the 2nd line was bad coding practice, but it works in this scenario

Mutator方法更改实例变量。他们的返回类型是" void"。

public void ripPages(int rippedpages) {
    this.pages = this.pages - rippedpages;
    System.out.println("HULK SMASH");
}

在行动......

javahandbook.ripPages(300);

静态方法是通用的,而不是基于每个对象。他们可以有任何返回类型。

public static int countBooks(List<Book> books) {
    return (books.size);
}

在行动......

public int howmanybooksinthislist = Book.countBooks;

将所有这些放在一起,你得到......

public class Book {
    private int pages;
    private static int amountOfBooksInTheWorld;
    public Book(int p) {
       pages = p;
    }
    public int getPages() {
        return (this.pages);
    }
    public void ripPages(int rippedpages) {
        this.pages = this.pages - rippedpages;
        System.out.println("HULK SMASH");
    }
    public static int countBooks(List<Book> books) {
    return (books.size);
}

我知道这有点太冗长了,但我希望它有所帮助!