拉钩教育JAVA学习笔记-2.1 类和对象
- 面向对象
- 对象的创建
- 引用的定义
- 类
- 概述
- 类的语法
- 成员变量
- 成员方法
- 传参
- 可变长参数
- 栈帧
将现实生活中对象的共性进行提炼,产生
类,而类是一个抽象的定义,不会产生实际的行为,想要产生行为,需要创建
对象,对象创建完毕,为了方便查找对象,需要
引用来记录对象的地址。
面向对象
万物皆对象
面向对象:分析现实生活中对象的属性跟行为的一种思维方式
对象:现实生活中客观存在的实体,java中即为在内存(堆区域)中的一块存储区域
对象的创建
new 类名();
- 创建的过程,即为类的实例化的过程,使用new关键字。
引用的定义
类
概述
即分类,对某一类对象的共性特征、行为的汇总描述。是用于构建对象的模板,对象的数据结构由定义它的类来决定。
在Java中体现为一种引用数据类型:
- 成员变量:记录对象特征、属性
- 成员方法:记录对象行为
类的语法
class 类名{
类体;
}
编程规范:
- 类名由多个单词组成时,每个单词首字母大写。
- 成员变量名由多个单词组成时,从第二个单词开始,每个单词首字母大写
成员变量
一般只声明,不赋初始值
成员方法
class 类名{
返回值类型 成员方法名(形参列表){
成员方法体;
}
}
返回值:如果方法有返回值,则用return关键字返回相关信息;如果没有返回值,用void关键字声明成员方法。return关键字代表方法的结束,如果在return关键字之后还有代码,是执行不到的。
形参:运行成员方法时,传入的参数,语法为 (数据类型 形参变量名1,数据类型 形参变量名2,…) ,如果不需要传入参数,括号内什么也不写
传参
- 基本数据类型作为方法的参数传递时,形参变量数值的改变,不会影响到实参变量的数值,因为两个变量有各自独立的内存空间
- 引用数据类型作为方法的参数传递时,形参变量指向内容的改变,会影响到实参变量指向内容的数值,因为两个变量指向同一块内存空间
public class Test{
//基本数据类型改变形参
void show1(int b){
b = 2;
System.out.println("show1方法中b值为:" + b);
}
//引用数据类型改变形参指向内容
void show2(int[] arr){
arr[0] = 10;
System.out.println("show2方法中arr[0] 值为:" + arr[0]);
}
public static void main(String[] args){
Test t = new Test();
int i = 1;
t.show1(i); //show1方法中改变形参,i的值仍为1
System.out.println("调用完show1方法后,mian方法中i值为:" + i);
int[] arr = new int[]{1,2};
t.show2(arr); //show2方法中改变形参指向内容,arr[0]的值变为10
System.out.println("调用完show2方法后,mian方法中arr[0]值为:" + arr[0]);
}
}
//执行结果
>java Test
show1方法中b值为:2
调用完show1方法后,mian方法中i值为:1
show2方法中arr[0] 值为:10
调用完show2方法后,mian方法中arr[0]值为:10
可变长参数
语法:返回值类型 方法名(参数的类型… 参数名)
//可变长参数,可以理解为一维数组
void showArgs(String... s){
for(int i = 0; i < s.length; i++){
System.out.println("第" + (i + 1) + "个参数是:" + s[i]);
}
}
参数中,指定类型的参数个数可以改变,即0-n个
一个方法的形参列表中,最多只能声明一个可变长形参,并且需要放到参数列表的末尾。
栈帧
栈中存放所有局部变量,每个栈帧对应每个被调用的方法,栈帧中存放了该方法的参数,局部变量等信息,当某个方法调用结束后,相应栈帧将被清除。