黑马程序员技术交流社区

标题: Java基础班个人学习笔记(二) [打印本页]

作者: w893118776    时间: 2018-7-17 21:32
标题: Java基础班个人学习笔记(二)
===========================第  四  天===============================

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】

自动装箱   基本类型---->包装类型
自动拆箱   包装类型---->基本类型



作者: w893118776    时间: 2018-7-17 21:34
未完待续。。。
作者: 小浙姐姐    时间: 2018-7-23 17:47





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2