面相对象编程
为什么会设计类这个东西
程序中要表示一个人的特征如何表示,它具有不同的类型,
第一个
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。
输出张三的名字。
标签:JAVA,对象,car,int,实例,十五,public,属性 From: https://blog.csdn.net/sadfasdfsafadsa/article/details/141999269