Java笔记Word文档格式.docx

上传人:b****2 文档编号:5187662 上传时间:2023-05-04 格式:DOCX 页数:33 大小:1.48MB
下载 相关 举报
Java笔记Word文档格式.docx_第1页
第1页 / 共33页
Java笔记Word文档格式.docx_第2页
第2页 / 共33页
Java笔记Word文档格式.docx_第3页
第3页 / 共33页
Java笔记Word文档格式.docx_第4页
第4页 / 共33页
Java笔记Word文档格式.docx_第5页
第5页 / 共33页
Java笔记Word文档格式.docx_第6页
第6页 / 共33页
Java笔记Word文档格式.docx_第7页
第7页 / 共33页
Java笔记Word文档格式.docx_第8页
第8页 / 共33页
Java笔记Word文档格式.docx_第9页
第9页 / 共33页
Java笔记Word文档格式.docx_第10页
第10页 / 共33页
Java笔记Word文档格式.docx_第11页
第11页 / 共33页
Java笔记Word文档格式.docx_第12页
第12页 / 共33页
Java笔记Word文档格式.docx_第13页
第13页 / 共33页
Java笔记Word文档格式.docx_第14页
第14页 / 共33页
Java笔记Word文档格式.docx_第15页
第15页 / 共33页
Java笔记Word文档格式.docx_第16页
第16页 / 共33页
Java笔记Word文档格式.docx_第17页
第17页 / 共33页
Java笔记Word文档格式.docx_第18页
第18页 / 共33页
Java笔记Word文档格式.docx_第19页
第19页 / 共33页
Java笔记Word文档格式.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java笔记Word文档格式.docx

《Java笔记Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java笔记Word文档格式.docx(33页珍藏版)》请在冰点文库上搜索。

Java笔记Word文档格式.docx

而String表示字符串,定义时用双引号,可以存储一个或多个字符,如Stringname="

tom"

char是基本数据类型,而String是一个类,具有面向对象的特征,可以调用方法,如name.length()获取字符串的长度。

Java中变量的使用规则

1、Java中的变量需要先声明后使用

2、变量使用时,可以声明变量的同时进行初始化;

也可以先声明后赋值

3、变量中每次只能赋一个值,但可以修改多次

4、main方法中定义的变量必须先赋值,然后才能输出

5、虽然语法中没有提示错误,但在实际开发中,变量名不建议使用中文,容易产生安全隐患,譬如后期跨平台操作时出现乱码等等

自动类型转换是需要满足特定的条件的:

1.目标类型能与源类型兼容,如double型兼容int型,但是char型不能兼容int型

2.目标类型大于源类型,如double类型长度为8字节,int类型为4字节,因此double类型的变量里直接可以存放int类型的数据,但反过来就不可以了

强制类型转换:

(数据类型)数值

强制类型转换可能会造成数据的丢失,数值上并未进行四舍五入,而是直接将小数位截断。

常量,我们可以理解为是一种特殊的变量,它的值被设定后,在程序运行过程中不允许改变。

语法:

final类型常量名=值;

程序中使用常量可以提高代码的可维护性。

例如,在项目开发时,我们需要指定用户的性别,此时可以定义一个常量SEX,赋值为"

男"

,在需要指定用户性别的地方直接调用此常量即可,避免了由于用户的不规范赋值导致程序出错的情况。

常量名一般使用大写字符。

注释:

一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的1/3以上。

因此,注释是程序源代码的重要组成部分,一定要加以重视哦!

Java中注释有三种类型:

单行注释、多行注释、文档注释

文档注释以/**开头以*/结束;

多行注释以/*开头以*/结束;

单行注释以//开头行末结尾;

使用文档注释时还可以使用javadoc标记,生成更详细的文档信息:

@author标明开发该类模块的作者

@version标明该类模块的版本

@see参考转向,也就是相关主题

@param对方法中某参数的说明

@return对方法返回值的说明

@exception对方法可能抛出的异常进行说明

第3章运算符

运算符是一种“功能”符号,用以通知Java进行相关的运算。

譬如,我们需要将变量age的值设置为20,这时候就需要一个“=”,告诉程序需要进行赋值操作。

Java语言中常用的运算符可分为如下几种:

Ø

算术运算符Ø

赋值运算符Ø

比较运算符Ø

逻辑运算符Ø

条件运算符

条件运算符(?

:

)也称为“三元运算符”。

语法形式:

布尔表达式?

表达式1:

表达式2

运算过程:

如果布尔表达式的值为true,则返回表达式1的值,否则返回表达式2的值

运算符优先级

比较运算符

1、>

、<

、>

=、<

=只支持左右两边操作数是数值类型

2、==、!

=两边的操作数既可以是数值类型,也可以是引用类型

第四章条件语句

Switch语句:

1、switch后面小括号中表达式的值必须是整型或字符型

2、case后面的值可以是常量数值,如1、2;

也可以是一个常量表达式,如2+2;

但不能是变量或带有变量的表达式,如a*2

3、case匹配后,执行匹配块里的程序代码,如果没有遇见break会继续执行下一个的case块的内容,直到遇到break语句或者switch语句块结束

第六章数组

数组定义格式:

数据类型[]数组名

数据类型数组名[]

分配空间:

数组名=new数据类型[数组长度]

例如:

Arrays类是Java中提供的一个工具类,在java.util包中。

该类中包含了一些方法用来直接操作数组,比如可直接实现数组的排序、搜索等

1.排序:

可以使用sort()方法实现对数组的排序,只要将数组名放在sort()方法的括号中,就可以完成对该数组的排序(按升序排列)。

2.将数组转换为字符串:

可以使用toString()方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开。

3.fill给数组赋值:

通过fill方法。

4.equals比较数组:

通过equals方法比较数组中元素值是否相等。

5.binarySearch二分查找:

使用二分搜索法来搜索指定数组的范围

使用foreach操作数组

foreach并不是Java中的关键字,是for语句的特殊简化版本,在遍历数组、集合时,foreach更简单便捷。

从英文字面意思理解foreach也就是“for每一个”的意思,那么到底怎么使用foreach语句呢?

第7章方法

方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。

一般情况下,定义一个方法的语法是:

其中:

1、访问修饰符:

方法允许被访问的权限范围,可以是public、protected、private甚至可以省略,其中public表示该方法可以被其他任何代码调用,其他几种修饰符的使用在后面章节中会详细讲解滴

2、返回值类型:

方法返回值的类型,如果方法不返回任何值,则返回值类型指定为void;

如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用return语句返回值

3、方法名:

定义的方法的名字,必须使用合法的标识符

4、参数列表:

传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开

根据方法是否带参、是否带返回值,可将方法分为四类:

无参无返回值方法Ø

无参带返回值方法

带参无返回值方法Ø

带参带返回值方法

无参无返回值方法

如果方法不包含参数,且没有返回值,我们称为无参无返回值的方法。

方法的使用分两步:

第一步,定义方法

下面代码定义了一个方法名为show,没有参数,且没有返回值的方法,执行的操作为输出“welcometoimooc.”

注意哦:

1、方法体放在一对大括号中,实现特定的操作

2、方法名主要在调用这个方法时使用,需要注意命名的规范,一般采用第一个单词首字母小写,其它单词首字母大写的形式

第二步,调用方法

当需要调用方法执行某个操作时,可以先创建类的对象,然后通过

来实现。

无参带返回值的方法不包含参数,但有返回值。

下面的代码,定义了一个方法名为calSum,无参数,但返回值为int类型的方法,执行的操作为计算两数之和,并返回结果

在calSum()方法中,返回值类型为int类型,因此在方法体中必须使用return返回一个整数值。

调用带返回值的方法时需要注意,由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理。

第二季

类与对象

成员变量默认有初始值,局部变量必须要先自己定义初始值;

两类变量同名时,局部变量具有更高的优先级(就近原则)。

1.成员变量:

在类中定义的,描述对象的属性(有什)

2.局部变量:

在类的方法中定义,在方法中临时保存数据

两者的区别:

成员变量可以被本类中的所有方法使用,也可以在其他的和当前类有关系中的类中使用,局部变量只能在当前的方法中去使用

两者的细节性差别:

(1)作用域问题:

局部变量的仅限于定义它的方法,成员变量在整个类中都可用.

(2)变量初始值问题:

注意在局部变量中必须给其赋初始值之后才能够对其使用,而成员变量可以不赋初始值(3)变量同名问题:

同一个方法中,定义的局部变量不能同名,不同方法中定义局部变量是可以重名(4)变量优先级问题:

成员变量和局部变量同名时

构造方法

1、使用new+构造方法创建新对象

2、构造方法是定义在Java类中的一个用来初始化对象的方法,创建对象时执行了构造方法。

3、构造方法包括无参和有参构造方法,后者不但可以创建对象,还可以给实例对象赋初值。

Java的默认值为0

4、当没有指定构造方法时,系统默认添加无参的构造方法

5、当有指定构造方法时,无论是有参还是无参的构造方法,都不会自动添加无参的构造方法

6、构造方法的重载:

方法名相同,单参数不同的多个方法,调用时会自动根据不同的参数选择相应的方法

new+构造方法创建一个新的对象(创建对象的时候,执行的是构造方法);

构造方法是定义在java类中,用来创建和初始化对象(当创建一个对象的时候,执行构造方法时)的方法;

构造方法与类同名且没有返回值,有参构造方法与无参构造方法;

Telphonephone=newTelphone();

当类中没有构造方法,系统会自动生成个无参构造方法,反之,就用构造方法创建对象;

可以用无参构造方法创建对象,也可以用有参构造方法创建对象。

后者不仅可以创建对象还可以给对象中实例变量赋初值;

Static讲解

1.Static之静态变量

大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。

然而在某些时候,我们更希望该类所有的对象共享同一个成员。

此时就是static大显身手的时候了!

Java中被static修饰的成员称为静态成员或类成员。

它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。

静态成员可以使用类名直接访问,也可以使用对象名进行访问。

当然,鉴于他作用的特殊性更推荐用类名访问~~

使用static可以修饰变量、方法和代码块。

要注意哦:

静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收!

~~

2.static之静态方法

1、静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。

如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。

2、在普通成员方法中,则可以直接访问同类的非静态变量和静态变量

3、静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法

3.static之静态初始化块

在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。

如果使用static修饰初始化块,就称为静态初始化块。

需要特别注意:

静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。

我们来看一段代码:

通过输出结果,我们可以看到,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。

由于静态初始化块只在类加载时执行一次,所以当再次创建对象hello2时并未执行静态初始化块。

封装特性:

只能通过规定的方法访问数据get()set()

封装的实现步骤:

1.修改属性的可见性:

设为private

2.创建get/set方法:

用于属性的读写

3.在get/set方法中计入属性的控制语句:

对属性值的合法性进行判断。

包的作用:

1.管理JAVA文件

2.解决文件名冲突问题

定义包:

package包名

注:

必须放在Java源程序的第一行

包名间可以使用“.”号隔开

eg:

com.imooc.MyClass

包的使用:

1.import关键字

importcom.imooc.music.MyClass

2.java中,包的命名规范是全小写字母拼写。

3.使用的时候不但可以加载某个包下的所有文件

com.imooc.*

也可以加载某个具体子包下的所有文件

eg:

com.imooc.music.*

访问修饰符

 

this关键字

1.this关键字代表当前对象

this.属性操作当前对象的属性

this.方法调用当前对象的方法

2.封装对象的属性的时候,经常会使用this关键字

*eclipse中可以直接生成setter/getter方法,具体操作步骤为:

Source->

GenerateGettersandSetters

内部类

1.内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类

2.内部类的方法可以直接访问外部类的所有数据,包括私有的数据

3.内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便

内部类可分为以下几种:

成员内部类静态内部类方法内部类匿名内部类

成员内部类

内部类中最常见的就是成员内部类,也称为普通内部类。

我们来看如下代码:

从上面的代码中我们可以看到,成员内部类的使用方法:

1、Inner类定义在Outer类的内部,相当于Outer类的一个成员变量的位置,Inner类可以使用任意访问控制符,如public、protected、private等

2、Inner类中定义的test()方法可以直接访问Outer类中的数据,而不受访问控制符的影响,如直接访问Outer类中的私有属性a

3、定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去new一个内部类对象,即:

内部类对象名=外部类对象.new内部类();

4、编译上面的程序后,会发现产生了两个.class文件

其中,第二个是外部类的.class文件,第一个是内部类的.class文件,即成员内部类的.class文件总是这样:

外部类名$内部类名.class

1、外部类是不能直接使用内部类的成员和方法滴

可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。

2、如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用this关键字。

静态内部类是static修饰的内部类,这种内部类的特点是:

1、静态内部类不能直接访问外部类的非静态成员,但可以通过new外部类().成员的方式访问

2、如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;

如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员

3、创建静态内部类的对象时,不需要外部类的对象,可以直接创建内部类对象名=new内部类();

继承的初始化顺序:

1.先初始化父类,再初始化子类

2.先执行初始化对象中属性,再执行构造方法中的初始化。

final关键字:

最终,最后

final修饰类,该类不容许修改

final修饰方法,该方法不允许被重写

final修饰属性,属性不能在其他位置修改它的值(只能赋值一次)

final修饰变量,变量被赋值一次后变成常量

super关键字:

在对象的内部使用,可以代表父类对象

访问父类的属性:

super.age

访问父类的方法:

super.eat();

子类的构造的过程中必须调用其父类的构造方法。

1.如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类无参的构造方法;

2.如果显示的调用构造方法,必须在子类的构造方法的第一行;

3.如果子类构造方法中既没有显式调用父类的构造方法,而父类又没有无参的构造方法,则编译出错。

Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object类。

Object类中的方法,适合所有子类。

toString()方法(实例:

用于System.out.println(x)输出对象的时候,输出的是哈希码):

在Object类里定义的toString()方法,用于返回对象的哈希code码(对象地址字符串-用来唯一区分对象,如身份证)。

可以重写toString()方法表示出对象的属性,快速在类中重写toString()方法的操作:

GeneratetoString()。

equals()方法,作为object类中重要方法之一,其本身是比较两个对象的地址是否相同。

而在实际使用中,我们大多时候需要比较的是两个对象的属性值是否相同,这样我们就得重写equals方法。

要达到我们的目的我们需要:

1、首先比较两个引用的地址是否相同,如相同,那么同一个地址存储的值必定相同;

2、对象是否为空值,若为空值,那一定不同;

3、比较两个类对象是否相同,如果不相同那值肯定不同(这里需要注意类对象与类的对象区别:

类对象是指我们创建的新的类对象,其有哪些属性、方法等;

而类的对象是指对象的具体属性值。

)4、将比较对象转化为相同的类类型进行属性值比较。

多态:

对象的多态

1、引用多态:

父类的引用可以指向本类的对象

父类的引用可以指向子类的对象

如果父类引用指向一个子类的对象,那么通过父类引用,只能调用父类所定义的允许继承的方法。

如果子类重写了继承父类的方法,那么会调用子类中的方法。

2、方法多态:

创建本类对象时,调用的方法为本类方法

创建子类对象时,调用的方法为子类重写的方法或者继承的方法

引用类型转换:

1、向上类型转换(隐式/自动类型转换),小类型转换为大类型(无风险)2、向下类型转换(强制类型转换),大类型转换为小类型(有风险)3instanceof运算符用来解决对象引用类型转换的安全性问题。

对象是传址引用,基本数据是传值引用。

Dogdog=newdog();

Animalanimal=dog;

向上类型转换(子类引用转换父类引用)

Dogdog2=(Dog)animal;

向下类型转换(父类引用强制转换为子类引用)

Catcat=(Cat)animal无法进行类型转换,会报错。

因为animal其实是引用指向dog类型对象,因此1编译时cat类型2运行时dog类型

instanceof是Java中的关键字,为二元运算符,作用是判断左边的对象是否是右边类的实例,返回值为布尔类型数据。

可以用来判断继承中子类的实例是否为父类的实现。

首先,从意义上讲,父类一般表示较抽象的概念,而子类表示更具体的概念。

一旦你创建子类的实例,就表示你已经了解了它的具体特性,即便你向上转型,也只是表示你暂时不关注具体的特性,但这个实例仍然是具体化的。

就好比你管理一家公司,你一开始为所有员工制定了某项规章制度,后来发现A部门比较特殊,给他们另行制定了这项规章,这就相当于你为“员工”这个父类派生了“A部门员工”这个子类,并覆写了执行该规章的方法。

现在你要号召该所有员工去执行该规章,你会向他们统一发号施令,但是A部门员工默认情况下仍然会按照你为他们制定的特别规章来实施,除非你刻意强调他们也按一般规章。

其次,在程序正确性的保证上,父类可以是一个抽象类,它的某个方法是虚函数,并没有给出实现,该方法在子类里才被实现。

这个时候,你把一个子类向上转型再调用这个函数,如果去调用父类方法的话,程序就会面对这个没有被实现的虚函数而无法执行。

所以,仍然要调用子类覆写的方法。

最后,从实现角度讲,向上转型之后,只不过改变了指针或者对象引用的类型,但它们所指向的内存中的实际对象的类型并没有改变,依然是子类的类型,所以调用方法仍然会是子类的。

抽象类定义

1、语法定义:

抽象类钱使用abstract关键字修饰,则该类为抽象类。

2、应用场景:

a、在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法

b、从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类设计的随意性。

3、作用:

限制规定子类必须实现某些方法,但不关注实现细节。

4、使用规则:

a、abstract定义抽象类

b、abstract定义抽象方法,只有声明,不需要实现

c、包含抽象方法的类是抽象类

d、抽象类中可以包含普通的方法,也可以没

接口语法

第三季

异常

处理异常:

try-catch以及try-catch-finally;

抛出异常;

自定义异常;

catch(Exceptione){

e.printStackTrace();

//输出异常的具体信息

}

当try语句中出现异常是时,会执行catch中

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2