java学习笔记(6-面向对象编程)

1.学生类案例

学生类:

package daigua6;
/*
 * 定义一个学生类
 * */
public class Student {
    // 成员变量
    String name;
    int age;
    
    // 成员方法
    public void study() {
        System.out.println("好好学习,天天向上!");
    }
    
    public void eat() {
        System.out.println("学习累了,要吃饭!");
    }
}

调用:

package daigua6;

public class StudentDemo {
    public static void main(String[] args) {
        // 创建一个学生对象
        Student s = new Student();
        // 对成员变量赋值
        s.name = "灭霸";
        s.age = 108;
        // 输出
        System.out.println("name:" + s.name);
        System.out.println("age:" + s.age);
        // 调用成员方法
        s.study();
        s.eat();
    }
}

目录结构:

2.类的封装和私有化

2.1private关键字

class Student:

package daigua6;
/*
 * 定义一个学生类
 * */
public class Student {
    // 成员变量
    String name;
    private int age;
    
    // 成员方法
    // 设置年龄
    public void setAge(int a) {
        if (a<0 | a>200) {
            System.out.println("年龄设置错误!");
        }else {
            age = a;
        }
    }
    
    // 获得年龄
    public int getAge() {
        return age;
    }
}

class StudentDemo:

package daigua6;

public class StudentDemo {
    public static void main(String[] args) {
        // 创建一个学生对象
        Student s = new Student();
        // 对成员变量赋值
        s.name = "灭霸";
        s.setAge(108);
        // 输出
        System.out.println("name:" + s.name);
        System.out.println("age:" + s.getAge());
    }
}

2.2this的使用

说明:代表所在类的对象引用,方法被哪个对象调用,this就代表那个对象
使用:当成员变量和局部变量重名
package daigua6;
/*
 * 定义一个学生类
 * */
public class Student {
    // 成员变量
    String name;
    private int age;
    
    // 成员方法
    // 设置年龄
    public void setAge(int age) {
        if (age<0 | age>200) {
            System.out.println("年龄设置错误!");
        }else {
            this.age = age; // 指明是当前对象的age
        }
    }
    
    // 获得年龄
    public int getAge() {
        return age;
    }
}

3.构造方法

说明:方法名与类名相同,主要用于对象初始化

3.1使用

package daigua6;
/*
 * 定义一个学生类
 * */
public class Student {
    
    public Student() {
        System.out.println("构造方法,初始化年龄!");
        this.age = 18;
    }
    
    // 成员变量
    String name;
    private int age;
    
    // 成员方法
    // 设置年龄
    public void setAge(int age) {
        if (age<0 | age>200) {
            System.out.println("年龄设置错误!");
        }else {
            this.age = age; // 指名是当前对象的age
        }
    }
    
    // 获得年龄
    public int getAge() {
        return age;
    }
}

3.2重载

说明:跟普通方法重载相通,根据形参类型和个数区分

学生类:

package daigua6;
/*
 * 定义一个学生类
 * */
public class Student {
    
    public Student(int age) {
        this.age = 18;
    }
    
    public Student(int age, String name) {
        this.age = age;
        this.name = name;
    }
    
    // 成员变量
    private String name;
    private int age;
    
    // 成员方法
    // 设置年龄
    public void setAge(int age) {
        if (age<0 | age>200) {
            System.out.println("年龄设置错误!");
        }else {
            this.age = age; // 指名是当前对象的age
        }
    }
    // 获得年龄
    public int getAge() {
        return age;
    }
    // 获得姓名
    public String getName() {
        return name;
    }
    // 设置姓名
    public void setName(String name) {
        this.name = name;
    }
}

测试:

package daigua6;

public class StudentDemo {
    public static void main(String[] args) {
        // 创建学生对象
        Student s1 = new Student(20);
        Student s2 = new Student(20, "罗纳尔多");
        
        
        // 输出
        System.out.println("name:" + s1.getName());
        System.out.println("age:" + s1.getAge());
        System.out.println("name:" + s2.getName());
        System.out.println("age:" + s2.getAge());
    }
}

4.将类名作为形参

定义一个老师类:

package daigua6;

public class Teacher {
    public void test(Student s) {
        
        System.out.println(s.getName());
    }

}

测试:

package daigua6;

public class TeacherDemo {
    public static void main(String[] args) {
        Student s = new Student(18, "达芬奇");
        Teacher t = new Teacher();
        t.test(s);
    }

}

5.将类名作为返回值

略...

猜你喜欢

转载自www.cnblogs.com/daigua/p/java-xue-xi-bi-ji-6mian-xiang-dui-xiang-bian-cheng.html