方法重载(Overload)
基本介绍
Java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致。
重载的好处
- 减轻了起名的麻烦
- 减轻了记名的麻烦
可变参数
1.基本概念
Java允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法
2.基本案例
public class Test{
public static void main(String[] args){
int abc=sum(100,200);
System.out.println(abc);
}
static int sum(**int... nums**){
int x=0;
for(int i=0;i<nums.length;i++){
x+= nums[i];
}
return x;
}
}
3.可变参数细节
- 可变参数的实参可以为0个或任意多个
- 可变参数的实参可以为数组
- 可变参数的本质就是数组
- 可变参数和普通参数一起在形参列表中时必须放在最后
- 一个形参列表只能出现一个可变参数
类与对象
1.引出
单独变量来解决⇒
不利于数据的管理。
数组⇒
数据类型体现不出来
只能通过下标获取信息,对应关系不明确
根本原因:不能满足需求
2.概述
1.类就是数据类型【对象模板】
2.对象就是一个具体的实例
类⇒对象
1.创建一个对象
2.实例化一个对象
3.把类实例化
3.对象内存布局
![E%WQ 1 I 1I 1I]JD2N}`2R0%I)MV.png](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b33559a8-bf46-4306-ab84-e10b7bfe4768/EWQ1IJD2N2R0I)MV.png)
4.对象
1.先声明再创建
Cat cat ;
cat=new Cat();
2.直接创建
Cat cat=new Cat();
Person p1=p2;
5.流程分析
- 加载Person类信息(Person.class)只会加载一次
- 在堆中分配空间
- 完成对象初始化
- 3.1默认初始化 age=0 name=null
- 3.2显式初始化 age=90 name=null
- 3.3构造器初始化 age=20 name=小倩
- 在对象在堆中的地址返回给p(对象名;对象的引用)
作用域
1.基本使用
-
在java编程中,主要的变量就是属性(成员变量)和局部变量
-
局部变量是指在成员方法中的变量和代码块中的变量
-
java中作用域的分类
全局变量:也就是属性,作用域为整个类体
局部变量:除了属性之外的其他变量,作用域为定义他的代码块中
4.全局变量可以不赋值,直接使用,因为有默认值,局部变量必须赋值后才能使用
2.注意事项
-
属性可以和局部变量重名,访问遵循就近原则
-
在同一个作用域中,一个方法的两个成员变量不可以重名
-
属性生命周期较长,伴随着对象的创建而创建,伴随着对象的销毁而销毁;
局部变量生命周期较短,伴随着它的代码块的执行而创建。即在一次方法调用过程中
-
作用域不同
全局变量 | 可以被本类使用,或其他类使用 |
---|---|
局部变量 | 只能在本类中对应的方法中使用 |
- 修饰符不同
全局变量 | 可以加修饰符 |
---|---|
局部变量 | 不可以加修饰符 |
构造器
1.基本语法
方法体
}
2.注意事项和使用细节
- 一个类可以有多个不同的构造器(构造重载)
- 构造器名要和类名完全一致
- 构造器没有返回值
- 构造器是完成对象的初始化,并不是创建对象
- 在创建对象时,系统自动的调用该类的构造方法
- 如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器(默认构造器)
}
7.定义了构造器之后,就不能再使用默认的无参构造器。
this关键字
this代表当前对象
- thist关键字可以用来访问本类的属性、方法、构造器
- this用于区分局部变量和属性
- 访问成员方法的语法:this.方法名(参数列表)
- 访问构造器语法:this(参数列表)【只能在构造器中使用另一个构造器】必须放在构造器第一个语句
- this不能在类定义的外部使用,只能在类定义的方法中使用。