一、设计对象并使用
-
类和对象
-
类(设计图):是对象共同特征的描述;
-
对象:是真实存在的具体东西。
在Java中,必须先设计类,才能获得对象。
如何定义类:
public class 类名{
1.成员变量(代表属性,一般是名词)
2.成员方法(代表行为,一般是动词)
3.构造器
4.代码块
5.内部类
}
如何得到类的对象:
类名 对象名=new 类名();
如何使用对象:
● 访问属性: 对象名.成员变量
● 访问行为:对象名.方法名(..)
-
类的几个注意事项
-
用来描述一类事务的类,专业叫做Javabean类。
在Javabean类中,是不写main方法的。
-
在以前,编写main方法的类,叫做测试类。
我们可以在测试类中创建javabean类的对象并进行赋值调用。
对象的成员变量的默认值规则
数据类型 |
明细 |
默认值 |
基本类型 |
byte、short、int、long |
0 |
float、double |
0.0 |
|
Boolean |
false |
|
引用类型 |
类、数组、接口、String |
null |
注:1.定义类有哪些建议,有什么需要注意的?
-
类名首字母建议大写、英文、有意义,满足驼峰模式,不能用关键字,满足标志符规定;
-
一个代码文件中可以定义多个类,但是只能一个类是public修饰的,public修饰的类名必须是Java代码的文件名称。
2.成员变量的格式是什么样的,有什么特点?
-
成员变量的完整定义格式是:修饰符 数据类型 变量名称=初始化值;
-
一般无需指定初始化值。
二、封装
-
什么叫封装
-
告诉我们,如何正确设计对象的属性和方法。
-
原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为。
-
封装的好处
-
让编程变得很简单,有什么事,找对象,调方法就行。
-
降低我们的学习成本,可以少学、少记,或者说压根不用学,不用记对象有哪些方法,有需要时去找就行
-
private关键字(私有关键字)
-
是一个权限修饰符
-
可以修饰成员(成员变量和成员方法)
-
被private修饰的成员只能在本类中才能访问
针对private修饰的成员变量,如果需要被其它类使用,提供相应的操作:
1.提供“setXxx(参数)”方法,用于给成员变量赋值,方法用public修饰
2.提供“getXxx()”方法,用于获取成员变量的值,方法用public修饰
三、构造方法
-
构造方法概述
构造方法也叫做构造器、构造函数
作用:创建对象的时候,有虚拟机自动调用,给成员变量进行初始化的。
-
构造方法的格式
public class Student{
修饰符 类名(参数){
方法体;
}
}
特点:
1.方法名与类名相同,大小写也要一致
2.没有返回值类型,连void都没有
3.没有具体的返回值(不能由return带回结果数据)执行时机:
1.创建对象的时候有虚拟机调用,不能手动调用构造方法
2.每创建一次对象,就会调用一次构造方法
-
构造方法的种类及作用
-
无参数构造方法:初始化的对象时,成员变量的数据均采用默认值。
-
有参数构造方法:在初始化对象的时候,同时可以威威对象进行赋值。
-
构造方法注意事项
-
构造方法的定义
-
如果没有定义构造方法,系统将给出一个默认的无参数构造方法
-
如果定义了构造方法,系统将不再提供默认的构造方法
-
构造方法恶的重载
-
带参构造方法,和无参数构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载
-
推荐的使用方式
-
无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法
四、标准JavaBean
-
类名需要见名知意
-
成员变量使用private修饰
-
提供至少两个构造方法
-
无参构造方法
-
带全部参数的构造方法
-
成员方法
-
提供每一个成员变量对应的setXxx()/getXxx()
-
如果还有其他行为,也需要写上
五、对象内存图
-
一个对象的内存图

对于上述创建对象,内存所做工作为:
-
加载class文件
-
申明局部变量
-
在堆内存中开辟一个空间
-
默认初始化
-
显示初始化
-
构造方法初始化
-
将堆内存中的地址值赋值给左边的局部变量
-
多个对象的内存图
内存图与一个对象的内存图一样,只是一个对象时内存所做的工作在新的对象创建时在重新执行一次
-
两个变量指向同一个对象内存图
两个变量指向同一个对象时,是将第一个变量的地址赋值给第二个变量,两个变量使用同一个堆内存,且当其中一个变量的值发生改变,其余变量在访问时值也会跟着改变。
-
this的内存原理
this的作用:区分局部变量和成员变量。
this的本质:代表方法调用者的地址值。
-
基本数据类型和引用数据类型的区别
从内存的角度去解释:
-
基本数据类型:数据值是存储在自己的空间中。特点为赋值给其他变量,也是赋的真实的值。
-
引用数据类型:数据值是存储在其他空间中,自己空间中存储的是地址值。特点为赋值给其他变量,赋的地址值。
-
局部变量和成员变量的区别
-
成员变量:类中方法外的变量
-
局部变量:方法中的变量
区别 |
成员变量 |
局部变量 |
类中位置不同 |
类中,方法外 |
方法内、方法申明上 |
初始化值不同 |
有默认初始化值 |
没有,使用之前需要完成赋值 |
内存位置不同 |
堆内存 |
栈内存 |
生命周期不同 |
随着对象的创建而存在,随着对象的消失而消失 |
随着方法的调用而存在,随着方法的运行结束而消失 |
作用域 |
整个类中有效 |
当前方法中有效 |