zoukankan      html  css  js  c++  java
  • Java基础02 方法与数据成员(转载)

    对象中的数据成员表示对象的状态。对象可以执行方法,表示特定的动作。

    此外,我们还了解了类(class)。同一类的对象属于相同的类型(type)。我们可以定义类,并使用该定义来产生对象。
     

    调用同一对象的数据成员

    方法可以调用该对象的数据成员。比如下面我们给Human类增加一个getHeight()的方法。该方法返回height数据成员的值:
    public class Test{
        public static void main(String[] args){
            Human aPerson = new Human();
            aPerson.breath();
            System.out.println(aPerson.height);
        }
    }
    class Human{
        void breath(){
            System.out.println("hu..hu..");
        }
        int height;
    }
     
    我们新增了getHeight方法。这个方法有一个int类型的返回值。Java中使用return来返回值。

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

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

    this并不是必需的,上述方法可以写成:
    int getHeight(){
        return height;
    }

    Java会自己去判断height是类中的数据成员。但使用this会更加清晰。

    /** comments  */添加注释的方法。(可以在以后点击某个参数时,显示注释的消息)

    方法的参数列表

    Java中的方法定义与C语言中的函数类似。Java的方法也可以接收参数列表(argument list),放在方法名后面的括号中。下面我们定义一个growHeight()的方法,该方法的功能是让人的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);
        }
    }
    class Human{
        int getHeight(){
            return this.height;
        }
        void growHeight(int h){
            this.height = this.height + h;
        }
        int height;
    }

    在growHeight()中,h为传递的参数。在类定义中,说明了参数的类型(int)。在具体的方法内部,我们可以使用该参数。该参数只在该方法范围,即growHeight()内有效。在调用的时候,我们将10传递给growHeight()。aPerson的高度增加了10。

    调用同一对象的其他方法

    在方法内部,可以调用同一对象的其他方法。在调用的时候,使用this.method()的形式。我们还记得,this指代的是该对象。所以this.method()指代了该对象自身的method()方法。
    比如下面的repeatBreath()函数:
    public class Test{
        public static void main(String[] args){
            Human aPerson = new Human();
        aPerson.repeatBreath(10);
        }
    }
    class Human{
        void breath(){
            System.out.println("hu..hu..");
        }
        void repeatBreath(int rep){
            int i;
            for(i = 0;i < rep;i++){
            this.breath();
        }
        }
        int height;
    }
     
    为了便于循环,在repeatBreath()方法中,我们声明了一个int类型的对象i。i的作用域限定在repeatBreath()方法范围内部。
     

    数据成员初始化

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

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

    • 数值型: 0
    • 布尔值: false
    • 其他类型: null 
     
    我们可以在声明数据成员同时,提供数据成员的初始值。这叫做显式初始化(explicit initialization)。显示初始化的数值要硬性的写在程序中:
     
    public class Test{
        public static void main(String[] args){
            Human aPerson = new Human();
        System.out.println(aPerson.getHeight());
        }
    }
    class Human{
        int getHeight(){
            return this.height;
        }
        int height = 175;
    }
    这里,数据成员height的初始值为175,而不是默认的0了。
  • 相关阅读:
    软件测试各阶段测试人员的职责
    【Python 学习_第4周_字符编码】金角大王培训_第4周_理解装饰器_1
    【Python 学习_第3周_字符编码】金角大王培训_第三周_字符编解码_心得及网上资料连接
    【Python 学习_第2周_程序代码】金角大王培训第二周练习_购物车代码,将写的代码和老师代码比较,记录下收获
    [测试理论_测试用例设计第一步_建立需求模型]读 Essential Software Test Design 书有感_1
    基于selenium模块的Python 自动化脚本常见错误(二)_采用selenium自带截图工具截取的图片截取不完全时的处理方法
    【测试管理_浅谈软件测试的价值及如何做】
    【Python 学习_第1周_程序代码】金角大王培训第一周作业_输入用户名和密码,根据输入内容进行结果判定(包含excel表格读写操作)
    基于selenium模块的Python 自动化脚本常见错误(一)
    C#中yield return的作用
  • 原文地址:https://www.cnblogs.com/airry66/p/3927566.html
Copyright © 2011-2022 走看看