1.1用类制造对象
类和对象的关系:类定义了对象长什么样,对象则是按照类的定义所制造出来的实体,一个类可以创建很多对象,每个对象有自己的数据。
·对象是实体,需要被创建,可以为我们做事情
·类是规范,根据类的定义来创建对象
数据:属性或状态
操作:函数
把数据和对数据的操作放在一起->封装
1.2 定义类
一个类由两种东西组成:表示对象有什么的成员变量和表示对象能做什么的成员函数。一旦定义了类,我们就可以创建这个类的多个对象,这些对象都会做那个类所定义的动作(函数),但是各自具有不同的数据。`
public class VendingMachine {
int price = 80;
int balance;
int total;
void showPrompt()
{
System.out.println("Welcome");
}
void insertMoney(int amount)
{
balance = balance + amount;
}
void showBalance()
{
System.out.println(balance);
}
void getFood()
{
if(balance >= price) {
System.out.println("Here you are.");
balance = balance - price;
total=total + price;
}
}
public static void main(String[] args) {
VendingMachine vm=new VendingMachine();
vm.showPrompt();
vm.showBalance();
vm.insertMoney(100);
vm.getFood();
vm.showBalance();
}
}
创建对象 ·new VendingMachine();
·VendingMachine v = new VendingMachine();
对象变量是对象的管理者
1.3 成员变量和成员函数
·类定义了对象中所具有的变量,这些变量成为成员变量
·每个对象有自己的变量,和同一个类的其他对象是分开的
this
this是成员函数的一个特殊的固有的本地变量,它表达了调用这个函数的那个对象
·通过 . 运算符调用某个对象的函数
·在成员函数内部直接调用自己(this)的其他函数
·定义在函数内部的变量是本地变量
·本地变量的生存期和作用域都是函数内部
·成员变量的生存期是对象的生存期,作用域是类内部的成员函数
1.4 对象初始化
成员变量定义初始化
·没有给出初始值的成员变量会自动获得0值
·对象变量的0值表示没有管理任何对象,也可以主动给null值
·定义初始化可以调用函数,甚至可以使用已经定义的成员变量
构造函数
·如果有一个成员函数的名字和类的名字完全相同,则在创建这个类的每一个对象的时候会自动调用这个函数 -> 构造函数
·这个函数不能有返回类型
函数重载
·一个类可以有多个构造函数,只要它们的参数表不同
·创建对象的时候给出不同的参数值,就会自动调用不同的构造函数
·通过 this() 还可以调用其他构造函数
·一个类里的同名但参数表不同的函数构成了重载关系