JavaSE 学习笔记
学了一部分才开的个人博客并开始使用markdown写笔记,前面的笔记就不补了。
Chapter 07
可变参数
可变参数的使用
***可变参数示例:***实现多个参数求和
1
2
3public int sum(int... nums){
//方法体
}代码解读:
1.int… 表示接收的是可变参数,类型是int,可以接收多个int类型参数。
2.使用可变参数时,可以当作数组来使用。
3.遍历nums求和。
注意事项和使用细节
1.可变参数的实参可以为数组。
2.可变参数的本质就是数组。
3.可变参数可以和普通类型的参数一起放在形参列表,但是需要保证可变参数在最后。
1
2
3
4
5
6/**
* 示例
*/
public void f(String str,double... nums){
//方法体
}4.一个形参列表中只能出现一个可变参数。
作用域
作用域的基本使用
1.局部变量:一般指在成员方法中定义的变量,是除了属性之外的其他变量,作用域为定义它的代码块中。局部变量赋值后才可以使用,即无默认值。
2.全局变量:即属性,作用域为整个类体。全局变量可以不赋值,直接使用(默认值)。
注意事项和使用细节
1.属性和局部变量可以重名,访问时遵循就近原则。
2.在同一个作用域中,两个局部变量不能重名。
3.属性生命周期较长:伴随对象;局部变量生命周期较短:伴随代码块。
4.属性不仅可以被本类使用,也可以被其他类使用(通过对象调用);局部变量只能在本类的对应方法中使用。
5.属性可以加修饰符,局部变量不可以加修饰符。
构造方法/构造器
基本语法:
[修饰符] 方法名(形参列表){
方法体;
}
说明:
1.构造器的修饰符可以默认。
2.构造器没有返回值。
3.方法名必须和类的名字一致。
4.参数列表的规则和成员方法相同。
5.构造器的调用由系统完成。
主要作用:完成对新对象的初始化。
快速入门
***示例:***创建Person对象时,就直接指定这个对象的年龄和姓名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15public class Example{
public static void main(String[] args){
//当我们创建一个对象时,直接通过构造器指定名字和年龄
Person p1 = new Person("Smith",80);
}
}
class Person{
String name;
int age;
public Person(String pName,int pAge){
name = pName;
age = pAge;
}
}解读:
1.构造器没有返回值**(也不能返回void类型)**
注意事项和使用细节
1.一个类可以定义多个不同的构造器,即构造器的重载。
2.构造器是完成对象的初始化的,不是创造对象。
3.创建对象时,系统自动的调用该类的构造方法。
4.如果程序员没有定义构造器,系统会自动给类生成一个默认无参构造器(也叫默认构造器)。
5.一旦定义了自己的构造器,默认的构造器就覆盖了,就不能再使用默认的无参构造器,除非自己显式定义无参构造器。
无参构造器语法:
方法名(){
}
对象创建的流程分析
案例:
1 | class Person{ |
流程分析:
1.加载Person类信息(Person.class),只会加载一次。
2.在堆中分配空间(地址)。
3.完成对象初始化:
- 默认初始化。(age = 0,name = null)
- 显式初始化。(age = 90,name = null)
- 构造器的初始化。(age = 20,name = 小明)
4.将对象在堆中的地址返回给p(p是对象名,也可以理解为对象的引用)。
this关键字
this代表当前对象。
注意事项和使用细节
1.this关键字可以用来访问本类的属性、方法、构造器。
2.this用于区分当前类的属性和局部变量。
3.this关键字访问成员方法的语法:
this.方法名(参数列表);
4.this关键字访问构造器的语法:
只能在构造器中访问另一个构造器,不可以在普通方法中使用。
this(参数列表);
该语句要使用,则必须放在构造器的第一句。
5.this不能在类定义的外部使用,只能在类定义的方法中使用。