实例方法

实例方法

在之前的代码中我们编写了一些方法,这些方法没有加static修饰,叫做实例方法。如果要想在其他类中使用实例方法,需要通过对象名.实例方法的方式来使用,对象也叫作实例,这就是实例方法名字的由来了。接下来通过代码的演示看看实例方法能做什么事情。

实例方法中可以直接使用成员变量

成员变量所在的位置是类体中,实例方法的位置也是类体中,所以我们可以通过实例方法直接使用成员变量。

/**
 * 该案例演示了在成员方法中,使用成员变量
 * 计算机类
 *         属性:品牌,价格,尺寸,颜色,内存,硬盘,cpu主频...
 *         行为:开机,关机,运行程序..
 */
public class Computer {
    String brand;
    int price;
    String color;
    int memorySize;//内存
    int diskSize;//硬盘
    double cpu;//cpu主频

    //显示当前电脑的详细配置(属性)
    public void showInfo(){
        System.out.println("=======配置信息========");
        System.out.println("品牌:" + brand);
        System.out.println("价格:" + price);
        System.out.println("颜色:" + color);
        System.out.println("内存大小:" + memorySize);
        System.out.println("硬盘容量:" + diskSize);
        System.out.println("cpu主频:" + cpu);
    }

    public void start(){
        System.out.println("电脑开机");
    }

    public void shutdown(){
        System.out.println("电脑关机");
    }

    public void runPrograme(){
        System.out.println("运行程序");
    }

}

创建测试类:

public class TestComputer {
    public static void main(String[] args) {
        //创建电脑对象
        Computer c1 = new Computer();
        
        //给对象中的属性赋值
        c1.brand = "联想";
        c1.color = "黑色";
        c1.cpu = 3.4;
        c1.diskSize = 512;
        c1.memorySize = 8;
        c1.price = 5500;
        c1.start();
        
        //调用实例方法
        c1.runPrograme();
        c1.shutdown();
        c1.showInfo();

    }
}

实例方法可以调用其他实例方法

在一个类中,我们可以在实例方法中调用另外的实例方法,但是要注意的是不要在多个实例方法之间互相调用,这样可能会出现StackOverflowError,栈内存溢出。

/**
 * 狗狗类
 *         属性:昵称,性别,年龄,身高,体重,品种....
 *         方法:叫,吃,看家,摇尾巴,显示狗信息
 */
public class Dog {
    String nickname;

    String gender;

    int age;

    double height;

    double weight;


    public void eat(){
        System.out.println("~~狗啃骨头~~");
        shake();//在一个成员方法中,调用了其它的成员方法
    }

    public void bark(){
        System.out.println("~~旺~~");
    }

    public void guard(){
        System.out.println("~~狗看家~~");
        bark();
    }

    public void shake(){
        System.out.println("~~摇尾巴~~");
    }

    //在成员方法中可以直接访问成员变量
    public void showInfo(){
        System.out.println("=======狗信息=======");
        System.out.println("昵称:" + nickname);
        System.out.println("性别:" + gender);
        System.out.println("身高:" + height);
        System.out.println("体重:" + weight);
        System.out.println("年龄:" + age);
    }



}

测试类

public class TestDog {
    public static void main(String[] args) {
        Dog d = new Dog();
        d.age = 3;
        d.gender = "公";
        d.height = 50;
        d.weight = 50;
        d.nickname = "旺财";

        d.showInfo();

        d.guard();

        d.eat();
    }
}