java - day 7 类与对象

377 阅读2分钟

定义类可以按照3个步骤

1.定义类名

2.编写类的属性

3.编写类的方法

// 定义类名
class Person {
    // 编写类的属性
    int age;
    String name;

    // 编写类的方法
    void sayName() {
        System.out.println(name);
    }

    // 编写类的方法
    int getAge() {
        return age;
    }
}

成员方法

类的方法

public 返回值类型 方法名(参数列表){
    //方法的主体
}

返回值类型如果是void没有return语句,否则return必须和返回值类型一致

对象

没有对象?new一个(狗头警告)

public static void main(String[] args) {
    Person p1 = new Person();
    p1.name = "Olympus";
    p1.age = 19;
    p1.sayName();
    System.out.println("我的年龄是" + p1.getAge());
}

输出

Olympus
我的年龄是19

成员变量和局部变量

直接在类中声明的是成员变量,在方法中声明的是局部变量。局部变量的作用域只能在对应方法中使用

class Person {
    int age; // 成员变量
    String name; // 成员变量
    
    void sayName() {
        String text = "我的名字是"; // 局部变量
        System.out.println(text + name);
    }

    // 编写类的方法
    int getAge() {
        return age;
    }
}

当局部变量中的名字和成员变量的名字相同是,局部变量优先

void sayName() {
    String text = "我的名字是";
    int age = 29;
    System.out.println(text + name);
    System.out.println("sayName中的age是" + age);
}

输出

我的名字是Olympus
sayName中的age是29

通过不同的包可以区分同名的类,package指定了该类只在这个包中

package com.newpackage;

public class Flower {
    public void saySomething() {
        System.out.println("这是另一个包的类Flower");
    }
}

需要通过import引入对应这个包的类

package com.company;
import com.newpackage.Flower;

public class Practise {
    public static void main(String[] args) {
        Flower f1 = new Flower();
        f1.saySomething();
    }
}

正常输出

这是另一个包的类Flower

导入包时可以使用完全限定名,如

import java.util.Date;

或者包中的所有类,如

import java.util.*;

包的命名有规范,包名由小写字母组成,一般使用倒序的组织域名组成,如 www.company.com 的包名就是 com.company