===========================第 四 天===============================
IDEA快捷键
ALT+ENTER,修复代码 CTRL+Y,删除当前光标所在行
CTRL+D,复制当前行插入下一行 SHIFT+F6,同名改动
Ctrl+E,最近的文件 Shift+Click,可以关闭文件 Ctrl+N,可以快速打开类
Ctrl+Shift+N,可以快速打开文件 Ctrl+Enter,导入包,自动修正 Ctrl+Alt+L,格式化代码
Ctrl+Alt+O,优化导入的类和包 Ctrl+F,查找文本 Ctrl+Shift+Space,自动补全代码
Ctrl+空格,代码提示(与系统输入法快捷键冲突) Alt+Shift+C,最近的更改
Alt+Shift+Up/Down,上/下移一行 Shift+F6,重构 - 重命名 Ctrl+X,删除行
Ctrl+D,复制行 Ctrl+/或Ctrl+Shift+/,注释(//或者/**/) Alt+ Enter 自动生成变量指向返回值
-----------------------------------------------------------------------------------------------
方法
若干语句的功能集合
修饰符 返回值类型 方法名称(参数类型 参数名称,...){ 修饰符:现阶段固定写法 public static
方法体 return:1、停止方法;2、将返回值还给调用处
return 返回值; 返回值与 返回值类型 相同
} 三要素:1、返回值类型;2、方法名称;3、参数列表
EX: 返回值只能有0或1个
public static int sum(int a,int b){
int sum=a+b;
return sum;
}
-------------------------------------------------------------------------------------------------
方法调用(必须调用)
单独调用:方法名称(参数); 打印调用:System.out.print(方法名称(参数));
赋值调用:数据类型 变量名称 = 方法名称(参数);
调用流程
1、找到方法;2、参数传递;3、执行方法体;4、带着返回值返回调用处
【基本使用赋值调用】
没有参数为无参方法;返回值类型为void即没有返回值,只能单独调用,没有“return 返回值;”(可以只写return或者啥也不写)。
【一个方法中可以有多个return,但要保证同一时刻只有一个return会被执行】。
方法重载
除了【参数列表】不一样,其他都一样,修饰符不管
只要方法名相同,参数列表不同,就是重载;
好处:【不用记更多的方法名】
与返回值类型无关
===========================第 五 天===============================
数组
数组是引用数据类型,数组中的元素数据类型一致
数组一旦创建,长度不可更改
创建(初始化):
1动态、数据类型[ ] 数组名称 = new 数据类型[数组长度]; 不规范:int 数组名[ ] = new 数据类型[数组长度];
2静态、 数据类型[ ] 数组名称 = new 数据类型[ ]{元素1,元素2,元素3,...};
省略: 数据类型[ ] 数组名称 = {元素1,元素2,元素3,...};
静态和动态初始化可以拆成两个步骤;【静态省略不能拆分成两个步骤】1、声明;2、初始化
【静态和动态初始化都有默认值】整数:0;浮点:0.0;字符:‘\u0000’;字符串(所有引用类型):null;布尔:false
------------------------------------------------------------------------------------------------
内存
1、栈(stack):存放的都是局部变量,方法执行与栈内
2、堆(heap):new出来的东西
3、方法区(method area):存储.class相关信息,包含方法的信息
4、本地方法栈(native method stack):操作系统相关
5、寄存器(PC register):cpu相关
注意
数组索引值是否越界;
空指针异常:数组必须new初始化才能使用;只是赋值null,(没有new,)引用类型就会空指针异常
数组可以作为方法参数,【所有的数据类型都可以作为方法参数】;数组作为方法参数,传递的是数组的地址值
数组作为返回值,返回的也是地址值
===========================第 六 天===============================
面向对象:找个东西做事情
面向过程:亲力亲为所有事情
------------------------------------------------------------------
类:一组相关【属性】和【行为】的集合,模拟现实事物,抽象
对象:一类事物的具体体现,一个类的具体【实例】
类是对象的模板,对象是类的实体
JAVA中 属性:成员变量;行为:成员方法【不要写static】
------------------------------------------------------------------------------
通常情况 类不能直接使用,需要先创建对象(【引用类型的使用】)
1、导包
import 包名称.类名称;对于属于同一包,可以省略
2、创建,格式
类名称 对象名 = new 类名称();PS:Student stu = new Student();
3、使用
成员变量:对象名.成员变量名;
成员方法:对象名.成员方法名(参数列表);
(想用谁,就 对象名.谁)
成员变量未赋值会有默认值,规则与【数组】相同
对象作为方法的参数和返回值时,传递与返回的是【地址值】
-----------------------------------------------------------------------------------------------------------
局部变量 (方法参数是局部变量) 成员变量(全局变量)
1、定义在方法内部 1、定义在方法之外,类之中 定义位置不同
2、作用在方法当中,出了方法不能用 2、整个类当中都能用 作用范围不同
3、没有默认值,必须手动赋值使用 3、如果没有赋值,会有默认值,和【数组】一样 默认值不同
【1、2、3重点】
4、位于栈内存 4、位于堆内存
5、随着方法进栈诞生,方法出栈消失 5、随着对象创建诞生,随着对象被垃圾回收消失
--------------------------------------------------------------------------------------------------------------
面向对象三大特性
【封装】 将一些细节信息隐藏,对外不可见,【为了代码安全】 【继承】 【多态】
1、方法就是一种封装
2、private也是封装
private
使用了private,只有本类中才可以使用,超出本类就不能【直接】访问,使用getter、setter方法:方法名必须getXxx、setXxx
getter不能有参数,必须有返回值,返回值与成员变量类型一致;setter不能有返回值,参数和成员变量类型一致
PS:对于基本类型中的 【布尔】 型,getter方法名必须是【isXxx】,sette方法规则不变
---------------------------------------------------------------------------------------------------------------
this
局部变量和成员变量重名,“就近原则”,优先使用局部变量;需要成员变量,this.成员变量名
【通过谁调用的方法,谁就是this】
区分重名变量
---------------------------------------------------------------------------------------------------------
构造方法
专门用来创造对象的方法,用【new创建对象】就是调用构造方法
格式
public 类名称(参数类型 参数名称){
方法体
}
1、构造方法名必须和所在类类名完全相同,大小写
2、不写返回值类型,void也不写
3、不能return一个具体的返回值
4、没有编写任何构造方法,编译器默认赠送一个【没有参数】、【没有方法体】的构造方法 【 public 类名称(){} 】
5、一旦编写构造方法,将不会赠送
6、构造方法可以重载
===========================第 七 天===============================
引用类型和 【类】 的使用方法相同
1、导包 2、创建 3、使用
【Scanner sc = new Scanner(System.in);】
【 int num = sc.nextInt();】
xx.next()是String类型,但不能加空格 最好用 xx.nextLine()
------------------------------------------------------------------------------------------------------------
匿名对象 只能使用一次 new是创建新的东西
标准 匿名
类名称 对象名=new 类名称(); new 类名称();
使用匿名对象好处:若只使用一次,匿名对象使用后立刻回收,有利内存释放
匿名对象可以作为参数和返回值
----------------------------------------------------------------------------------------------------------
集合ArrayList
数组长度不可变,ArrayList可变
ArrayList<E> E代表泛型,指装在集合内的所有元素,类型全部统一
泛型只能是引用类型
EX:ArrayList<String> list = new ArrayList<>( );
直接打印ArrayList集合,得到的不是地址,而是内容,若内容为空,则得到[ ]
-------------------------------------------------------------------------------------------------------
ArrayList常用方法
public boolean add(E e) 添加【add】返回值代表添加是否成功 【ArrayList一定添加成功,其他集合不一定】
public E get(int index) 获取 返回值就是那个位置的元素【get()】
public E remove(int index)删除元素,返回被删除的元素【remove()】
publi int size() 获取集合长度,返回值是集合中元素个数【size()】
保存在集合中的都是地址值,所以<E>不能用基本类型
基本类型 包装类(引用类型,都在java.lang包)
byte Byte
short Short
其他类似
int 【Integer】
char 【Character】
自动装箱 基本类型---->包装类型
自动拆箱 包装类型---->基本类型
|
|