06 类和对象

251 阅读5分钟

01 面向对象编程的概念

  • 万物皆对象

  • 面向对象是指以属性和行为的观点去分析现实生活中的事物

  • 面向对象编程指先以面向对象的思想进行分析,然后使用面向对象的编程语言进行表达的过程

  • 面向对象的精髓是封装、继承、多态

02 类和对象的概念

  • 对象是指现实生活中客观存在的实体,在Java语言中体现为内存空间中的一块存储区域
  • 类简单来说就是”分类“,是对具有相同特征和行为的多个对象的抽象描述,在Java语言中体现为一种引用数据类型,里面包含了描述特征的成员变量以及描述行为的成员方法
  • 类是用于构建对象的模板,对象的数据结构由定义它的类来决定

03 类的定义

类的定义语法格式为:

class 类名{
			类体;
}

这里需要注意的编程规范是类名有多个单词组成时,要求每个单词的首字母要大写

04 成员变量的定义

成员变量的定义语法格式为:

class 类名{
	数据类型  成员变量名=初始值;
}

这里对于成员变量名也有要求,但成员变量名由多个单词组成时,要求从第二个单词起每个单词的首字母大写

05 对象的创建

对象的创建语法格式是:new 类名();

new person();

注意:

  • 当一个类定义完成后,可以使用new关键字来创建该类的对象,这个过程成为类的实例化

  • 创建对象的本质是在内存空间的堆区申请一块存储区域,用于存放该对象独有特征信息

06 引用的定义

引用:使用引用的数据类型定义的变量叫做引用变量,简称为“引用”。

引用变量主要用于记录对象在堆区中的内存地址信息,便于下次访问

语法格式: 类名 引用变量名;

​ 引用变量名.成员变量名;

Person p=new Person();
p.name="liubei";
System.out.println(p.name);

07 成员变量的初始值

对象创建后,其成员变量可以按照默认的方式初始化,具体规则如下:

08 成员方法的定义

成员方法的定义格式:

class 类名{
	返回值类型 成员方法名(形参列表){
        成员方法体;
	
	}
}

当成员方法名有多个单词组成时,要求从第二个单词起每个单词的首字母大写

09 返回值类型

  • 返回值主要指从方法体内放回到方法体外的数据类容s
  • 返回值类型是指返回值的数据类型,可以是基本数据类型,也可以是引用数据类型
  • 在方法体中使用return关键字可以返回具体的数据内容并结束当前方法
  • 当方法不需要返回任何内容时,返回值类型写void

10 形参列表

  • 形式参数主要用于将方法体外的数据内容传入到方法体内
  • 形式参数列表是指多个形式参数组成的列表,语法格式是:数据类型 形参变量名1,数据类型 形参变量名2,.......
  • 当方法不需要传入任何数据内容时,形参列表处空着即可

11 方法体

成员方法体主要用于编写描述该方法功能的语句块,使用成员方法可以实现代码的重用,简化代码。

对于成员方法的调用,语法格式如下:引用变量名.成员方法名(实参列表);

关于方法的调用注意以下几点:

  • 实参列表主要用于对形式参数列表进行初始化,所以参数的个数、类型以及顺序必须完全一致
  • 实参列表可以传递直接量、表达式、变量、方法的调用等

12 可变长参数

可变长参数语法格式是:返回值类型 方法名(参数的类型... 参数名)

方法参数部分指定类型的参数个数是可改变的,也就是0~n个

一个方法的形参列表中最多只能声明一个可变长参数,并且需要放到参数列表的末尾

13 参数传递的注意事项

  • 基本数据类型的变量作为方法的参数传递时,形参变量数值的改变是不会影响到实参变量的数值,因为两个变量有各自独立的内存空间
  • 引用数据类型的变量作为方法的参数传递时,形参变量指向内容的改变会影响到实参变量指向内容的数值,因为两个变量指向同一块内存空间
  • 引用数据类型的变量作为方法的参数传递时,若形参变量改变指向后再改变指定的内容,是不会影响到实参变量指向内容的改变,因为两个变量指向不同的内存空间

14 内存结构之栈区

  • 栈区用于存放程序运行过程中所有的局部变量。一个运行的Java程序从开始到结束会有多次方法的调用
  • JVM会为每一个方法的调用在栈中分配一个对应的空间,这个空间成为栈帧。一个栈帧对应一个正在被调用的方法,栈帧中存储了该方法的参数、局部变量等数据。
  • 当一个方法调用完成后,其对应的栈帧将被清楚。

15 传参的相关概念

  • 参数分为形参和实参,定义方法时的参数是形参,调用方法时传递的参数是实参
  • 调用方法时采用值传递把实参传递给形参,方法内部是在使用形参
  • 值传递是指当参数是基本数据类型时,传递参数的值;当参数是引用数据类型时,传递的是对象的内存地址