类
类是一个模板,它描述一类对象的行为和状态。
也可以理解为:一组具有相同属性和行为的对象的抽象集合。
类的属性:对象的特征, 名词
类的方法:对象的行为, 动词
对象
对象是类的一个实例(此对象非彼对象),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
即对象就是类的实例,一个类可以创建出多个对象。
创建一个简单的类
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,欢迎大家找我聊天,记录你我的故事。