首先我们要了解编程思想:
编程思想:
面向过程:注重过程,当完成某个功能的时候,必须清楚每一个步骤,然后按照步骤一步一步执行
面向对象:注重对象,当完成某个功能的时候,无须清楚每一个步骤,只需要找到可以完成该功能的对象,让该对象来完成即可
一句话:java是面向对象的语言,在java中万物皆对象
1.类:
概述:类是用来描述现实事物的,由属性和行为组成
- 属性:就是该事物的状态信息。----成员变量
- 行为:就是该事物能够做什么。----成员方法
如:
学生类:
属性:姓名,年龄,学号,成绩
行为:学习、睡觉、吃饭
猫类:
属性:颜色,体重,年龄
行为:吃,睡
2.对象:
概述:对象是一类事物的具体体现,对象是类的一个实例,必然具备该类事物的属性和行为。
如:
学生对象: 张三学员
属性:张三,18,2,98
行为:张三正在学习,张三正在吃饭,张三正在喝水,…
猫对象: 那只汤姆猫
属性:黄色,3kg,2岁
行为:猫正在床上睡觉
3.对象和类之间的关系:
对象是根据类来创建的,类中有什么,对象就有什么
1. 类是对一类事物的描述,是抽象的。
2. 对象是一类事物的实例,是具体的。
3. 类是对象的模板,对象是类的实体。
4.定义类
定义一个类来具体描述一个事物,由属性和行为组成:
类名:具体事物类名
属性: 信息状态
行为: 能干什么
定义类的格式:
public class 类名{
成员变量(属性);
成员方法(行为);
}
成员变量:对应事物的属性
成员方法:对应事物的行为
- 成员变量:和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外。
- 成员方法:和以前定义方法几乎是一样的。只不过把static去掉。
5.对象的使用
对象的使用格式:
创建对象:
格式: 类名 对象名 = new 类名();
对象的使用:
访问成员变量: 对象名.成员变量名
访问成员方法(调用成员方法): 对象名.方法名(实际参数);
如果成员方法没有返回值: 直接调用 对象名.方法名(实际参数);
如果成员方法有返回值:
直接调用-->对象名.方法名(实际参数);
输出调用-->输出语句System.out.println(对象名.方法名(实际参数));
赋值调用-->数据类型 变量名 = 对象名.方法名(实际参数);
注意:
成员变量会有默认值,默认值分别是:
整数类型默认值是0
小数类型默认值是0.0
字符类型默认值是'\u0000'
布尔类型默认值是false
引用数据类型( 数组,类,接口)默认值是 null
一个对象的内存图:
两个对象的内存图:
1.当没有变量指向的对象,会被java的垃圾回收机制回收
2.通过一个类可以创建出多个对象,而这多个对象之间是相互独立的
一个引用,作为参数传递到方法中内存图:
引用数据类型作为参数传递,传递的是地址值
引用数据类型作为方法的返回值,返回的也是地址值
6.成员变量和局部变量区别:
在类中的位置不同
-成员变量:类中,方法外
-局部变量:方法中或者方法声明上(形式参数)
作用范围不一样
-成员变量:类中
-局部变量:方法中
初始化值的不同 重点
-成员变量:有默认值
-局部变量:没有默认值。必须先定义,赋值,最后使用
在内存中的位置不同
-成员变量:堆内存
-局部变量:栈内存
生命周期不同
-成员变量:随着对象的创建而存在,随着对象的消失而消失
-局部变量:随着方法的调用而存在,随着方法的调用完毕而消失