方法:
-
概念:
- 完成独立功能的模块,可以实现代码的重复利用,
-
作用:
- 可以反复使用的代码,增强代码的可读性
-
方法的基本语法格式:
-
访问控制符 返回值 方法名(){ 方法体 }
-
-
方法的调用:
-
有static修饰:
- 属于静态方法,在需要调用时我们用类名去调用方法名
- 在main方法中,我们可以不用类名去调用方法,直接使用简单的方法:方法名()
-
无static修饰:
- 直接用方法名进行调用
-
-
方法中的参数:
- 形参:形式参数
- 就是在方法当中的()内写的参数,是用来告诉程序员,这个方法需要输入的参数是什么类型的,在调用的时候就传入该类型的值
- 实参:实际参数
- 就是在调用方法的时候,我们对方法中的规定的参数进行传入的值,必须传入相同类型的值才能调用此方法,也就是我们主要进行运算的值
- 形参:形式参数
-
方法的分类:
- 无参数无返回
- 在方法里面打印输出,那么main方法里面只需要调用
- 有参数有返回
- 有参数无返回
- 无参数有返回
- 就是不要在方法里面进行打印输出
- 返回的关键字:
- return 结果会被他返回
- 你返回的是什么类型,我们就要在方法中的void的位置改为对应的类型
- 无参数无返回
-
特别注意:
- 编译只看类型,不看值
- 在有返回的方法中,有if和for的时候,我们要充分地考虑如果进不去判断或者循环,要始终保证整个方法有一个返回值
-
方法的传递:
- 基本数据传递的是数值
- 引用数据类型传递的是地址值
-
方法传递时 的可变参数
- 可变参格式
- 访问控制符 返回值 方法名(其他数据类型 变量,数据类型…数变量名){}
- 意义:
- 主要是用于传多个的值,在我们需要多个不固定的值 进行操作的时候,进行的值传递,满足不同的需求
- 他的本质必须是就是数组
- 作用:
- 简化了代码,具体传入的值是交给了编译器进行编译
- 可变参格式
面向对象:
-
概念:
- 就是找人来帮自己做事
-
基本语法:
-
public class 类名 { // 可编写 0 到 n 个成员变量 [修饰符] 数据类型 变量名1; [修饰符] 数据类型 变量名2; // 可编写 0 到 n 个成员方法 [修饰符] 返回值类型 方法名称(参数) { //方法体 } } 设计类要求: 1.类名,大驼峰,见名知意,不能以jdk中存在的类命名 2.成员变量名和方法名,小驼峰,见名知意 3.在类名、方法名、成员变量名上面写文档注释
-
-
命名规则就是统一的java规范的规则
-
创建对象:
-
格式:
- 类名 对象名 = new 类名();
-
用对象给成员变量的对象赋值
-
对象名.成员变量名 = 值
-
// 1. 创建对象(相当于复制模板): 语法:类名 对象名 = new 类名(); Student student = new Student();// 必须声明一个Student类型的变量保存当前对象 // 2. 对象赋值(填写信息) 语法:对象名.成员变量 = 值; student.name = "美女老师"; student.age = 37;
-
-
对象取值和对象调用实例方法
-
对象取值语法: 对象名.成员变量 ; 对象调用实例方法: 对象名.方法名(…);
-
-
面向对象在堆栈内存的理解
- 元空间:
- 是我们在定义类的时候,就会把我们写的变量等的模板放在里面,供堆去复制
- 堆内存:
- 每次创建一个对象,就会在堆内存中生成一个地址值,并且堆内存会从栈内存中复制模板下来,并且用一个地址值来记录
- 栈内存:
- 在代码进行运行的时候,首先进入栈内存,并且栈内存在需要调用的时候,会跑去堆内存中去找对应的属性,通过堆内存的地址值去找到对应的元素,然后再进行赋值等的操作
- 元空间:
-
构造方法(Constructor):
-
概念:
- 和普通方法类似,但是是和普通方法中的代码块不同
- 他也是方法,也能执行代码的逻辑
- 构造方法就是一个代码块 就是一个结构 ,构造方法和 字段 方法一样都是一个类中的成员之一
- 存在于类的结构体中
-
特点:
- 每个类中至少有一个构造方法
- 如果没有显示 的,那么就会有一个隐式的无参数的构造方法
- 如果我们进行编译了构造方法,那么隐式的构造方法已经不存在了
- 因此我们在使用构造方法的时候,最好是将两种情况的构造方法全部都声明出来,用就拿,不用就放着
-
作用:
- 是在创建对象的时候,直接给对象赋值吗,简化代码的复杂性,就不会每次都去调用成员变量然后再进行赋值,太过于冗杂
-
特别注意:
- 只有在创建的时候赋值,不能在创建好过后再进行赋值
- 只要创建了构造方法或者被new调用,就是在堆内存中创建了对象,对象都是被放在堆内存中的
-
语法格式注意:
- 和类名一致
- 不能有返回值,也就是不能有return void也不行
- 和普通方法一样, 可以有参数,形参,也可以有修饰符
- 必须有方法体
- 构造方法不能有任何非访问性质的修饰符修饰,例如 static、final、synchronized、abstract等都不能修饰构造方法。
-
使用语法;
-
new 类名();// 调用无参构造 new 类名(...);// 调用有参构造
-
-
注意:new Student() 这个整体既是一个Student对象,又是调用的Student的无参数构造方法。
-
方法的调用:
- 在同一个类中有static修饰和没有static修饰
- 在同一个类中,有static修饰,直接使用方法名
- 在不同的类中,有static修饰:
- 类名.方法名
- 不在同一个类中
- 创建一个对象,通过对象去调用方法
- 对象名 . 方法名
- 创建一个对象,通过对象去调用方法
- 在同一个类中有static修饰和没有static修饰
-
构造方法的赋值:
- 对象名.成员变量
- 值和成员变量的数据类型必须一致
- 有参构造:
- new 类名()
- 实参和成员变量的类型必须一致
- new 类名()
- 对象名.成员变量
有参构造和无参构造使用的场景
- 当对象需要赋值的成员变量很多的时候,用:无参构造创建对象,然后用 对象名.成员变量 = 值; 方式赋值
- 当对象需要赋值的成员变量少的时候,用:有参构造创建对象直接赋值即可。