一、类和对象的相关概念
1、面向对象和面向过程的理解
面向对象和面向过程都属于解决问题的思考方式。
面向过程:以执行者的角度思考问题,侧重于“怎么做”,比较适合解决小型项目
面向对象:以指挥者的角度思考问题,侧重于“谁来做”,比较适合解决中大型项目
面向对象和面向过程不能分割开来,二者相辅相成,缺一不可!
宏观上通过面向对象思考,微观上通过面向过程思考!
2、类和对象的概念、关系、区别
(1)概念
对象:客观世界中所有可以被描述的事物都称为对象(万物皆对象)。
类:具有相同属性和方法的一组对象的集合称为类
(2)关系
对象:通过类创建出来的具体的实例
类:属于对象所属的类型
(3)区别
对象:具体的、实际存在的
类:抽象的、模板性质的
3、如何区分开每一个对象?
通过对象的特征(属性和方法)
属性:
对象的外观特征
比如:姓名、年龄、颜色、价格等
方法:
对象的行为特征或功能
比如:能装水、吃、喝、能计算
二、类和对象的创建和使用★
1、类的创建
步骤:
①通过class关键字定义
②编写属性(外观特征)
③编写方法(行为功能)
示例:
[public] class 类名{
String name;//属性
int age;//属性
public void show(){//方法
}
}
2、对象的创建
步骤:
①创建对象
类型 对象名 = new 类型();
②使用对象
为对象的属性赋值
对象名.属性 = 值;
System.out.println(对象名.属性);
调用对象的方法
对象名.方法();
注意:
①不同对象是独立的,他们的属性值互不影响,其中一个更改,不影响另外的对象
②对象的属性可以不用赋值,有默认值
int——0
double——0.0
char——\u0000
boolean——false
引用类型——null
3、基本类型与引用类型比较
使用步骤 | 称呼 | 存储位置 | 访问方式 | |
基本类型 | int i = 100; | 变量名和变量值 | 栈 | 直接访问i即可 |
引用类型 |
Student s = new Student(); s.name="xiaoming" |
变量名—>对象名或引用名 变量值—>对象 |
对象名存在栈 值存在对 |
一般访问s的属性,如s.name |
三、类和对象的内存分配★
1、类仅加载一次★
每次创建对象,都需要先判断类是否已经加载过,如果已经加载过,则不需要再次加载;如果没有加载过,则需要通过类加载器将字节码文件加载到方法区中;
然后在堆中创建对象
2、存储★
栈中存储的是对象的引用(对象名)和局部变量
堆中存的是对象和对象的属性
方法区存的是类的结构信息
3、不同对象是独立的,互不影响
【补充】内存分配图
原文地址:https://www.cnblogs.com/truthseeking/p/9507838.html