第十一节 面向对象

类是一个模板,它描述一类对象的行为和状态。
也可以理解为:一组具有相同属性和行为的对象的抽象集合。

类的属性:对象的特征, 名词
类的方法:对象的行为, 动词

对象

对象是类的一个实例(此对象非彼对象),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
即对象就是类的实例,一个类可以创建出多个对象。

创建一个简单的类

package com.njlife123.qzmall.base;

/**
 * 汽车类
 */
public class Car {

    //车名
    String carName;

    //车价格
    int price;
    
    //车颜色
    static String color;

    /**
     * 车跑起来
     */
    void running(){

    }

    /**
     * 加油方法
     */
    void jiayou(){

    }
}


类中的变量

  • 成员变量

    声明在类里面方法外面的变量。
    分为类变量和实例变量,static修饰的变量为类变量否则就是实例变量(对象变量)。类变量可以通过类名.变量访问,实例变量要通过new出对象通过new处对象引用变量访问属性。

  • 局部变量
    在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

构造方法

每个类都有构造方法,如果在声明类的时候没有创建构造方法,编译器默认会创建一个默认的构造方法。

package com.njlife123.qzmall.base;

/**
 * 汽车类
 */
public class Car {

    //车名
    String carName;

    //车价格
    int price;

    //车颜色
    static String color;

    /**
     * 空参构造方法
     */
    public Car() {
        
    }

    /**
     * 带有参数的构造方法
     * @param carName
     * @param price
     */
    public Car(String carName, int price) {
        this.carName = carName;
        this.price = price;
    }
    

    /**
     * 车跑起来
     */
    void running(){

    }

    /**
     * 加油方法
     */
    void jiayou(){

    }
}

上边代码有两个构造方法。

构造方法:

在创建对象的同时对对象进行初始化.

语法:访问修饰符  类名(参数列表){
		//初始化代码
     }

构造函数的特点:

  • 无返回值。

  • 只能在new的时候自动调用,不能显式调用。

  • 方法名与类名相同。

  • 假如一个类中没有定义任意一个构造函数,编译器编译时会自动添加一个空参空体的构造。假如一个类中定义了任意一个构造函数,编译器不会再自动添加任何构造函数。

  • 一个类中可以有多个构造,多个构造函数的参数列表必须不一样。

创建对象

语法:

类名 引用变量名=new 类名(参数列表); //调用类的某个构造函数获得类的实例对象

后续通过引用变量名,使用点运算符访问属性和方法

访问属性: 引用变量名.属性名
访问方法: 引用变量名.方法名()

package com.njlife123.qzmall.base;

/**
 * 从新建一个类创建对象
 */
public class TestCar {

    public static void main(String[] args) {
        //类变量颜色可以通过类名.方法名访问
        Car.color = "red";

       //调用空参构造器 宝马
        Car baoma = new Car();
        //给汽车设置名字为宝马,
        baoma.carName = "宝马";
        baoma.price = 23;
        System.out.println(baoma.carName);//获取宝马名字
        baoma.running(baoma.carName);//调用开车


        //调用空参构造器 奥迪对象
        Car aodi = new Car("奥迪",20);
        System.out.println(aodi.carName);//获取奥迪名字
        baoma.running(aodi.carName);//调用开车

        //获取车的名字,因为变量是类的,所以不管宝马还是奥迪都是red
        System.out.println(Car.color);


    }
}

作者简介:一个有故事的程序员,我的微信号qiushuzhao222,欢迎大家找我聊天,记录你我的故事。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值