面向对象---第一天

以代码为例,梳理所学。

package com.itheima;
/* * 声明类Student,包含3个成员变量:name、age、score, * 要求可以通过 new Student("张三", 22, 95) 的方式创建对象, * 并可以通过set和get方法访问成员变量 */
public class test08 {
    public static void main(String args[])
    {
        Student stu = new Student("张三", 22, 95); //通过 new Student 方式创建对象
        /* stu.setName("张三"); stu.setAge(22); stu.setScore(95); */
        stu.speak();//调用speak,输出内容

    }
}
class Student//封装的对象
{
    private String name;//全部定义为私有
    private int age;
    private int score;
    // 定义带参数的构造函数 
    public Student(String name, int age, int score) {   
        this.name = name;   
        this.age = age;   
        this.score = score;   
    }   
    //定义访问方法,访问成员变量
    public String getName() {   
        return name;   
    }   
    public void setName(String name) {   
        this.name = name;   
    }   
    public int getAge() {   
        return age;   
    }   
    public void setAge(int age) {   
        this.age = age;   
    }   
    public int getScore() {   
        return score;   
    }   
    public void setScore(int score) {   
        this.score = score;   
    }   
    public void speak()//输出内容
    {
        System.out.println("姓名:"+this.name + "\n" +"年龄:"+this.age + "\n"   
                +"成绩:"+this.score);
    }

}

捋一遍流程。
1. 首先主函数中 Student stu = new Student(“张三”, 22, 95) 通过new方法创建一个名字为stu的student类对象。
解释:
类:对事物的描述
对象:实际个体
举例说明:
定义一个类:高,帅,富 定义一个类:吃草,能跳
对象:贝克汉姆 对象:兔子
2. Student stu = new Student(“张三”, 22, 95)调用的是构造函数Student
解释:
构造函数是每一个类的初始化,即使你没定义,系统也会默认一个为空的构造函数。当然你定义了构造函数,系统就不会再去默认构造一个构造函数。
3. public Student(String name, int age, int score) {
this.name = name;
this.age = age;
this.score = score;
}
这是一个带参数的构造函数,里面的局部变量name,age,score与成员变量 name,age,score同名,说以需要用到this。
解释:
this有一种作用,用于区分局部变量和成员变量,this代表所在函数所属对象的引用。换一种说法就是,谁再用这个函数,谁的名字就能替换this。如题,stu再用Student这个构造函数,那么this.name相当于stu.name。也就是说把“张三”这个字符串赋值给stu里的name。同理 this.age = age; this.score = score; 都是如此。
4. class Student//封装的对象
{
private String name;//全部定义为私有
private int age;
private int score;
}
class Student创建一个封装的对象,期中定义私有成员变量String name,int age,int score。
解释:
Java有四种访问类型,分别为public、protected、default和private,其中 public变量可以被所有的外部类访问,而pretected变量可以被同一个包及该类的子类访问, default变量即没有任何修饰符的变量可以被同一个包中的类访问,而private变量只能在该类内部被访问。
换句话说,你的String name,int age,int score只能在class Student里面被使用,主函数中无法被使用。

  1. public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    如上面所说, private只能在类里面被访问,所以在Student类里面再创造set(),get()方法访问private内容。

你可能感兴趣的:(面向对象---第一天)