面向对象(一)——类与对象

从这节课开始我们进入面向对象的世界

 

什么是面向对象?

       面向对象是一种编程思想,在面向对象的语言中一切都是对象

 

面向对象三大特征:

       封装: 对一系列属性和方法进行包装

       继承: 子类可以继承父类的属性和方法,比如狗拥有动物的所有属性和特征

       多态: 同一变量根据不同情况可以采用不同的方法

 

 

面向对象的基石是类与对象

类:

本质是数据类型

自定义的

       拥有属性和方法

 

对象:

       类类型的变量

       储存在堆(内存的一个区,基本数据类型变量储存在栈中)中

       可被引用变量(c语言里叫指针)引用

 

引用变量:

       储存在栈中

       可以引用堆中的对象(可以通过引用变量来访问对象的属性和方法)

       Java里无法直接访问对象,只能通过引用变量间接访问

       引用变量储存的值为对象的地址(jvm根据引用变量储存的地址去访问对象)

 

实例:

       就是类类型的变量,实例等同于对象

 

属性:

       也叫成员变量,定义在类里面的变量

       属性可以被每一个类的对象所持有

       不同对象不共用属性

 

方法:

       也叫成员函数,或者简称函数

       定义在类里面

       对语句集合的封装

       通过在方法内部写不同的语句可以实现不同的功能

 

类的定义:

       class 类名{

              //声明属性

              修饰符 类型 属性名;

              …

 

              //声明方法

              修饰符 返回值类型 方法名(类型 参数名, 类型 参数名, …)

              {

                     //方法实现

}

 

}

 

 

修饰符:

       用于表示属性或方法的作用域的关键字

 

作用域:

       可以被直接访问的域

 

面向对象(一)——类与对象

 

Demo

 

public class User {

//属性
    public int id;
    private int age;
 

//方法
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

 

创建对象:

       类型名 变量名 = new 类型名();

如:

       User user = new User();

解释:

       new User()会创建一个User类型的对象储存在堆区,并返回该对象的地址

       User user 表示声明一个User类型的引用变量,名字为user

       User user = new User() 就是创建一个User对象并返回地址赋值给引用变量user

       由此可见引用变量的值是对象的地址

 

通过引用变量访问属性:

       user.id = 3;

通过引用变量访问方法:

       user.setId(1);

 

this 关键字

       this是一个引用,指向类本身,可以在类里通过this访问类的属性和方法