JAVA(十五)类和对象

面相对象编程

为什么会设计类这个东西

程序中要表示一个人的特征如何表示,它具有不同的类型,

第一个

name 姓名

age年龄  19 int

sex性别 男 String

第二个

name1 姓名

age1年龄  19 int

sex1性别 男 String

第n个。

调用第几个怎么调用,我们知道数组放的是数据相同的类型,不能有不同的类型

C语言中有结构体,JAVA中用类来实现不同的数据类型存放在同一个结构中

汽车,计算机并不认识,只认识0101001,需要开发人员告诉计算机什么是汽车

左边一列的属性就告诉计算机要产生一种新的类型,这个类型有属性,有功能

具有共同属性和行为的事物的抽象,是对象的模板,是具有相同特征的事物的抽象描述,是抽象的、概念上的定义

它包含两种类型,一种属性,一种叫行为也就是方法。比如汽车Car这个类中 有三个属性,三个方法

对象(也称为实例)

实际存在的该类事物的每个个体,是具体的,因而也称为实例(instance),如下图人是一个类,而具体的人就是对象

可以理解为:类 => 抽象概念的人;对象 => 实实在在的某个人。

再比如汽车是一个模版是一个类,具体的一个个汽车就是一个个对象,也就是实例

比如宝马z4就是根据汽车这个类创建的一个实例,它有自己速度、价格、品牌,它也有自己的行为(加速,减速,巡航)就是方法。   右边的这么多汽车也是一个个对象一个个实例,它们也都有自己独特的速度、价格、品牌

所以我们说,类是用来告诉虚拟机如何创建某种对象的蓝图,模版

房子图纸就是一个模版一个类,根据模版造出的房子就是一个个类

古人在这方面的辩论。。。

类的定义

类的定义使用关键字:class。格式如下:

[修饰符] class 类名{
    属性声明;
    方法声明;
}

定义一个汽车类

public class Car {
    private int speed;
    private int price;
    private String brandName;
    /*减速*/
    public void brake(){
        speed-=10;
    }
    /*加速*/
    public void boost(){
        speed+=10;
    }
      public int getSpeed() {
        return speed;
    }
    public void setSpeed(int speed) {
        this.speed = speed;
    }
    public int getPrice() {
        return price;
    }
    public void setPrice(int price) {
        this.price = price;
    }
    public String getBrandName() {
        return brandName;
    }
    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }
}

练习定义一个Person人类 ,Person就是类,一个个人就是一个个对象,Person有name,sex,age属性,有eat,sleep,run行为,也就是方法

练习定义一个Dog类 有breed size color ,age 属性,有eat run sleep name三个方法

练习定义一个房子设计图纸类,类名Room  属性heigt,width,price,area

注意练习使用IDEA中generate get set方法生成他的get set方法

创建对象,实例化,对象化

对象是类的实例。类是创建对象的模板或蓝图。因此,对象是类的实例(结果)

执行Dog myDog= new Dog ();语句后,将在内存中给Dog 对象分配空间,并在栈内存中给引用变量myDog分配空间,存放Dog 对象的引用。

使用setName给dog类对象name属性赋值

使用getName给获取dog类对象的name属性

定义了一个类,就相当于在计算机中定义了一种新的类型,用类类型创建对象的过程,称为类的实例化,在java中采用new关键字,配合类名来实例化对象

练习

Car  car  = new Car(); 使用new关键字来创建一个car 类的对象 ,

执行Car  car  = new Car();语句后,将在内存中给Person对象分配空间,并在栈内存中给引用变量car分配空间,存放Car 对象的引用。

使用setPrice给car类价格属性赋值

使用getPrice调用car类的价格属性

调用

使用car.方法名 或 car.属性名 来调用


对象的引用

对象引用的赋值

此时fido指向的Dog对象 在没有被用到,被当做垃圾,被垃圾回收器回收

练习

建立一个学生类,Student

name 为String 类型,修饰符为private,

sex 为String类型,修饰符为private

age 为int 类型,修饰符为private

方法 声明 say() 输出我是一个好学生

IDEA中右键generate get set方法,为每个属性生成它的get set方法

使用new 创建一个学生对象,使各个属性的set方法为它赋值。学生名为张三,性别为男,年龄为18。

输出张三的名字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薛定谔的猫1981

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值