类和对象
什么是对象?万物皆对象,客观存在的事物皆为对象
- 面向过程和面向对象的区别:
面向过程是围绕着任务解决问题,面向对象是围绕着对象进行设计
类
是对象的集合,是对现实生活中一类具有共同属性和行为的事物的抽象,是一组具有相同属性行为的对象的集合
- 特点
- 类是对象的数据类型
- 类具有相同属性和行为的一组对象的集合
- 对象的属性:对象具有的各种特性,每个对象的每个属性都拥有特定的值
例如,类:手机,属性:品牌,值:小米
- 对象的行为
对象能够执行的操作
例如,类:手机,属性:品牌,值:小米,行为:打电话
- 类和对象的关系
类是对象的抽象(模板),对象是类的实体(实例)
类的定义
类是Java程序的基本组成单位
(编译器会将.java源文件编译成.class字节码文件,由java虚拟机中的类加载器加载.class文件)
- 类的组成:属性和行为
- 属性:在类中通过成员变量来体现(类中方法外的变量)
- 行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)
public class 类名{
//成员变量
变量名1的数据类型 变量名1;
变量名2的数据类型 变量名2;
......
//成员方法
方法1;
方法2;
...
}
public class Phone{
//成员变量
String brand;
int price;
//成员方法
public void call(){
System.out.println("打电话");
}
public void sendMessage("发短信"){
}
}
JavaBean
首先明确的是JavaBean是一种Java类,而且是一种特殊的、可重用的类。
必须具有无参数的构造器,所有的属性都是private的,通过提供setter和getter方法来实现对成员属性的访问。
JavaBean的种类按照功能可以划分为可视化和不可视化两类。可视化的JavaBean就是拥有GUI图形用户界面的,对最终用户是可见的。不可视化的JavaBean不要求继承,它更多的被使用在JSP中,通常情况下用来封装业务逻辑、数据分页逻辑、数据库操作和事物逻辑等,这样可以实现业务逻辑和前台程序的分离,提高了代码的可读性和易维护性,使系统更健壮和灵活。随着JSP的发展,JavaBean更多的应用在非可视化领域,并且在服务器端应用方面表现出了越来越强的生命力。
名称中的“Bean”是用于Java的可重用软件组件的惯用叫法。
对象的使用
创建对象
格式:类名 对象名 = new 类名()
Phone p = new Phone();
使用对象
1,使用成员变量
格式:对象名.变量名
p.brand
成员变量和局部变量
成员变量:类中方法外的变量
局部变量:方法中的变量
区别
区别 | 成员变量 | 局部变量 |
---|---|---|
类中位置 | 类中方法外 | 方法内或者方法声明上 |
内存中位置 | 堆内存 | 栈内存 |
生命周期 | 随着对象的存在而存在,随着对象的消失而消失 | 随着方法的调用而存在,随着方法的调用完毕而消失 |
初始化值 | 有默认的初始化值 | 没有默认的初始化值,必须先定义,赋值,才能使用 |
访问修饰符 | 可以使用访问修饰符 | 不能使用访问修饰符 |
对象的销毁
对象的销毁
如果一个对象没有任何引用,那么就具备了被垃圾回收机制(GC)回收的条件。
如果我们想主动通知垃圾回收机制回收一个对象,只需要:对象 = null;
垃圾回收机制(GC)
优点:不需要程序手动释放对象的资源,会由垃圾回收器自动销毁不再被引用的对象
缺点:不是说你通知它回收他就会立刻执行,都是自动执行