美文网首页
方法与数据成员

方法与数据成员

作者: SingleDiego | 来源:发表于2018-03-07 10:50 被阅读2次

调用同一对象的数据成员

方法可以调用该对象的数据成员。比如下面我们给 Human 类增加一个 getHeight() 的方法。该方法返回 height 数据成员的值:

class Human 
{
    int getHeight()
    {
        return this.height;
    }

    int height;
}

public class Test
{
    public static void main(String[] args)
    {
        Human aPerson = new Human(); // 创建一个 Human 对象
        System.out.println(aPerson.getHeight());
    }
}

输出结果:

0

我们新增了 getHeight() 方法。这个方法有一个 int 类型的返回值。Java 中使用 return 来返回值。

注意 this,它用来指代对象自身。当我们创建一个 aPerson 实例时,this 就代表了 aPerson 这个对象。this.heightaPersonheight

this 是隐性参数(implicit argument)。方法调用的时候,尽管方法的参数列表并没有 this,Java 都会默默的将 this 参数传递给方法。




方法的参数列表

Java 的方法可以接收 参数列表(argument list),放在方法名后面的括号中。下面我们定义一个 growHeight() 的方法,该方法的功能是让人的 height 增高:

class Human 
{
    int getHeight()
    {
        return this.height;
    }

    void growHeight(int h)
    {
        this.height = this.height + h;
    }

    int height;
}

public class Test
{
    public static void main(String[] args)
    {
        Human aPerson = new Human();
        System.out.println(aPerson.getHeight());
        
        aPerson.growHeight(10);
        System.out.println(aPerson.getHeight());
    }
}

输出结果:

0
10

growHeight() 方法中,h 为传递的参数。在类定义中,说明了参数的类型为 int。在具体的方法内部,我们可以使用该参数。该参数只在该方法范围,即 growHeight() 内有效。

在调用的时候,我们将 10 传递给 growHeight()aPerson 的高度增加了10。




调用同一对象的其他方法

在方法内部,可以调用同一对象的其他方法。在调用的时候,使用 this.method() 的形式。我们还记得,this 指代的是该对象。所以 this.method() 指代了该对象自身的 method() 方法。

比如下例中重复呼吸的方法,repeatBreath()

class Human 
{
    void breath()
    {
        System.out.println("hu...hu...");
    }

    void repeatBreath(int rep)
    {
        int i;
        for(i = 0; i < rep; i++) {
            this.breath();  // 调用自身的 breath() 方法
        }
    }
}

public class Test
{
    public static void main(String[] args)
    {
        Human aPerson = new Human();
        aPerson.repeatBreath(10);
    }
}

输出结果:

hu...hu...
hu...hu...
hu...hu...
hu...hu...
hu...hu...
hu...hu...
hu...hu...
hu...hu...
hu...hu...
hu...hu...

为了便于循环,在 repeatBreath() 方法中,我们声明了一个 int 类型的对象 ii 的作用域限定在 repeatBreath() 方法范围内部。




数据成员初始化

在 Java 中,数据成员有多种 初始化 (initialize)的方式。比如上面的 getHeight() 的例子中,尽管我们从来没有提供 height 的值,但 Java 为我们挑选了一个默认初始值 0。

基本类型的数据成员的默认初始值:

  • 数值型: 0
  • 布尔值::false
  • 其他类型: null

我们可以在声明数据成员同时,提供数据成员的初始值。这叫做 显式初始化 (explicit initialization)。显示初始化的数值要硬性的写在程序中:

class Human 
{
    int getHeight()
    {
        return this.height;
    }

    int height = 175; // 显式初始化
}

public class Test
{
    public static void main(String[] args)
    {
        Human aPerson = new Human();
        System.out.println(aPerson.getHeight());
    }
}

输出结果:

175

相关文章

  • 方法与数据成员

    调用同一对象的数据成员 方法可以调用该对象的数据成员。比如下面我们给 Human 类增加一个 getHeight(...

  • static关键字与main方法

    static关键字与main方法 静态的成员变量只会在数据共享区中维护一份,而非静态成员变量的数据会在每个对象中都...

  • GeekBand-OC类型成员

    类型成员的分类 数据成员(描述对象的状态)实例变量、属性 函数成员(描述对象行为)方法、初始化器、析构器 数据成员...

  • Objective-C 之属性与点语法

    一. 成员变量的setter方法与getter方法. setter为成员变量的设置器方法. getter为成员变量...

  • java中static什么意思_Java中static的含义和用

    static:静态的,用于修饰成员(成员变量,成员方法); 1.被static所修饰的变量或者方法会储存在数据共享...

  • 第2章 面向对象编程入门--类

    1类的概述 类是存储数据和方法的集合,它包含数据成员和函数成员.1.数据成员代表事物的特性2.函数成员代表事物的行...

  • JAVA(三)回忆基础扫盲之一

    一.对象与类 简单的类 实例化构造方法 访问实例化变量和访问成员方法使用get和set方法 二.JAVA的数据类型

  • 每天学一点Thinking in java: 4 字段和方法

    字段(fields)和方法(methods) 数据成员(data members)(有时也叫“字段”)以及成员函数...

  • Java基础教程之构造器与方法重载

    Java基础教程之构造器与方法重载 在方法与数据成员中,我们提到,Java中的对象在创建的时候会初始化(initi...

  • 2020-06-22常用API

    Math 没有构造方法,成员变量与成员方法都是用static修饰,所以使用Math就能调用里面的成员变量和方法 常...

网友评论

      本文标题:方法与数据成员

      本文链接:https://www.haomeiwen.com/subject/qhgdfftx.html