类和对象
对象:客观事物的一个实体,由一组属性和方法构成
类:具有相同属性和方法的对象的抽象就是类
或者说一组具有相同特性(属性)与行为(方法)的事物集合
类由属性和方法组成:
属性:特征,比如:身高、体重、姓名
方法:行为,比如:说话、吃饭、唱歌
**对象的抽象是类,类的具体化就是对象**
例如:人是类,小明就是具体的对象
public class Person{
String name; //字符串是引用类型,不是基本数据类型变量
int age;
int weight;
public void eat() {
System.out.println("人可以吃饭!");
}
public void sleep() {
System.out.println("人可以睡觉!");
}
public void play() {
System.out.println("人可以玩游戏!");
}
}
其中 name ,age,weight 是person这个类所拥有的属性
eat , sleep ,play 是这个类的行为,也就是方法
public static void main(String[] args) {
Person xiaoming = new Person();
xiaoming.eat();
xiaoming.sleep();
xiaoming.play();
//匿名对象:只能使用一次,用完后,该对象会被释放
new Person().eat();
//xiaoming = null ;对象被释放,将不能再使用
}
xiaoming 就是person这个类的具体化,因此xiaoming就是一个对象
xiaoming也具有name ,age,weight 这些属性,可以调用eat , sleep ,play这些方法.
运行结果如下:
人可以吃饭!
人可以睡觉!
人可以玩游戏!
升级案例:
public class Person {
String name;
int age;
int weight;
public void eat() {
System.out.println(this.name+"可以吃饭!");
}
public void sleep() {
System.out.println(this.name+"可以睡觉!");
}
public void play() {
System.out.println(this.name+"可以玩游戏!");
}
public static void main(String[] args) {
Person xiaoming = new Person();
//有了对象就可以调用对象的属性和方法
xiaoming.name = "小明";
xiaoming.eat();
xiaoming.sleep();
xiaoming.play();
}
小明可以吃饭!
小明可以睡觉!
小明可以玩游戏!
下面是关于类的思维导图
类可用的修饰符只有 public final abstract
final 和abstract不可以同时使用
static :修饰静态成员类,可以通过类名访问
final :终极类,不能继承,不能实例化
abstract :抽象类,不能实例化,只能继承,抽象类是类的模板,因为多态而存在。声明抽象方法如果子类不是抽象类,必须由子类实现。
对象在内存中的结构
栈内存
堆内存
全局变量
代码段