java重点知识归纳.docx

上传人:b****6 文档编号:4279752 上传时间:2022-11-28 格式:DOCX 页数:24 大小:90.67KB
下载 相关 举报
java重点知识归纳.docx_第1页
第1页 / 共24页
java重点知识归纳.docx_第2页
第2页 / 共24页
java重点知识归纳.docx_第3页
第3页 / 共24页
java重点知识归纳.docx_第4页
第4页 / 共24页
java重点知识归纳.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

java重点知识归纳.docx

《java重点知识归纳.docx》由会员分享,可在线阅读,更多相关《java重点知识归纳.docx(24页珍藏版)》请在冰豆网上搜索。

java重点知识归纳.docx

java重点知识归纳

1.下载JDK(JavaDevelopmentKit,Java开发包)

2.JRE(JavaRuntimeEnvironment,Java运行时环境)

3.JDK包含了JRE。

4.关于Java的版本:

JDK1.4

JDK1.5==JDK5.0,tiger(老虎)

JDK1.6==JDK6.0,mustang(野马)

5.我们的课程讲的是JDK1.6。

6.配置环境变量。

要配置两个环境变量

1)path:

指定到jdk安装目录的bin目录下

2)classpath:

值为.,表示当前目录

7.如何查看环境变量:

在命令行输入setpath命令。

8.编写Java程序要使用纯文本编辑器,比如notepad,editplus,ultraedit。

9.Java源文件的后缀名必须是java。

10.Java程序的开发步骤

1)编写Java源代码(sourcecode),存储到后缀名为java的文件中(源文件,sourcefile)。

2)使用javac命令编译java源文件:

javacHelloWorld.java。

编译之后会生成一个后缀名为class的文件(字节码文件,bytecode)。

然后通过执行字节码文件实现跨平台的运行。

(Writeonce,Runanywhere,编写一次,到处运行)

3)执行。

执行使用的命令是java,方式是:

javaHelloWorld(注意,不要包含.class后缀名)

11.如果使用了public,那么源文件名需要与类名保持一致;如果没有使用public,那么源文件名与类名可以不一致。

12.注释。

Java中的注释分为三种。

1)单行注释//这是注释,Java编译器会将//后面的所有内容全部忽略掉,注释是给开发者看的,不是给Java编译器看的。

2)多行注释。

/*与*/之间的所有内容都会被Java编译器忽略掉。

多行注释不能嵌套。

/*这是多行注释

/*

这是多行注释

*/

*/

上面这种多行注释方式是错误的。

3)另一种多行注释

/**

*/

13.变量与常量。

变量就是可以变化的量,常量是不可以变化的量。

比如数字5就是一个常量,因为它无法再改变了。

变量:

要想使用变量,必须先定义变量。

如何定义变量?

类型变量名;//变量的定义

变量名=具体值;//变量的赋值

将上面两步操作合并为一步:

类型变量名=具体值;

inta=100;//表示定义了一个整形变量a,并且将100赋给a

类型:

Java中一共有两大部分类型:

第一种叫做原生数据类型;第二种叫做引用类型(对象类型)。

14原生数据类型(基本数据类型)。

Java中一共有8种原生数据类型。

1)整型:

用int表示。

2)字节:

用byte表示。

3)短整型:

用short表示。

4)长整型:

用long表示。

5)字符类型:

用char表示。

仅表示一个字符,比如字母a,汉字张等,用单引号包围。

6)单精度浮点型:

用float表示。

7)双精度浮点型:

用double表示。

所谓浮点型,其实就是小数,或者叫做实数。

8)布尔类型:

用boolean表示,该类型一共只有两个值:

true与false。

true表示真,false表示假。

15.强制类型转换,将表示范围大的值转换为表示范围小的类型的值。

floata=(float)1.2;

浮点数的默认类型是double,1.2是double类型,它无法直接赋值给表达范围更小的float类型,必须要经过强制类型转换,强制类型转换的语法是:

类型变量名=(类型)变量值;

16.Java中的变量在使用前必须要定义,而且只能定义一次。

如下代码是错误的

inta=100;

inta=200;

因为变量a定义了两次,造成重复定义。

如下代码也是错误的

a=100;

System.out.println(a);

因为变量a没有定义。

如何同时定义多个变量?

变量类型变量名1,变量名2,…….,变量名n;如:

inta,b,c;

要想使用变量,首先需要定义,然后必须赋值。

如下代码是错误的,因为变量a并没有赋值。

inta;

System.out.println(a);

17.关于变量名的命名约定,以字母,下划线,或者$开头,后接字母、下划线、$以及数字,没有长度限制。

18.关于强制类型转换的注意事项:

当把表示范围小的类型赋给表示范围大的类型,可以直接赋值,无需强制类型转换;但当把表示范围大的类型转换为表示范围小的类型,则必须要进行强制类型转换。

19.inta=8;

intb=a/3;

如果无法整除,那么将小数点后的部分全部舍去,只保留整数部分

20.inta=1;

intb=a++;

表示先将a的值赋给b,然后a再加一,结果是a为2,b为1。

inta=1;

intb=++a;

表示先将a的值加一,然后讲加完的结果赋给b,结果是a为2,b为2

--的道理与++类似

第二节

1

doublea=3.5;

intb=2;

doublec=a/b;

对于上面的程序,a是double类型,b是int类型,这样当a与b相除时,结果类型取决于a与b中表示范围最大的类型,由于double类型表示的数据范围要比int类型大,因此a与b相除的结果类型就是double,所以需要将变量c声明为double类型。

2.运算优先级。

与数学上的运算是一样的,都是先乘除,后加减;可以使用小括号改变运算数的优先级。

如下程序:

inta=3,b=8,c=9;

intd=(a-b)/c;

会先计算a–b,然后用结果除以c。

3.关系运算符。

关系运算的结果是个boolean类型的值。

4.布尔逻辑运算符。

操作数必须是布尔类型的数据。

1)逻辑与:

&&,操作数是两个,只有两个操作数都为true,结果才为true,否则结果为false。

2)逻辑或:

||,操作数是两个,如果两个操作数中有一个为真,结果就为真,否则结果为假。

5.关于布尔运算符的短路特性。

1)逻辑与&&:

如果第一个操作数为假,则不再进行第二个操作数的判断(因为结果已经确定为假);如果第一个操作数为真,则继续进行第二个操作数的判断。

2)逻辑或||:

如果第一个操作数为真,则不再进行第二个操作数的判断(因为结果已经确定为真);如果第一个操作数为假,则继续进行第二个操作数的判断。

6.条件运算符。

条件运算符是个三元表达式。

typed=a?

b:

c;

7.控制结构。

1)if语句

第一种方式

if(布尔表达式)

{

//程序代码

}

第二种方式

if(布尔表达式)

{

//程序代码

}

else

{

//程序代码

}

第三种方式

if(布尔表达式)

{

//程序代码

}

elseif(布尔表达式)

{

//程序代码

}

elseif(表达式)

{

//程序代码

}

.

.

.

else

{

//程序代码

}

2)while语句:

while是一种循环结构

while(布尔表达式)

{

//程序代码

}

3)do…while语句:

do…while语句也是一种循环结构

do

{

//程序代码

}

while(布尔表达式);

关于while与do…while的比较与分析:

1)while语句先判断布尔表达式,然后再执行程序代码;do…while语句先执行程序代码,然后再判断布尔表达式。

2)如果布尔表达式第一次判断的结果为false,那么while语句中的代码一次也不执行;而do…while语句中的代码会执行一次。

3)如果布尔表达式第一次判断的结果为true,那么while语句等价于do…while语句。

4)switch…case:

作用类似于if…elseif…elseif…else结构

switch(变量名)

{

case常量1:

//程序代码

break;

case常量2:

//程序代码

break;

case常量3:

//程序代码

break;

.

.

.

.

default:

//程序代码

}

switch语句中的变量类型只能是byte,short,int以及char。

5)for语句:

for语句也是一种循环结构,并且是使用最多的一种循环结构。

for(变量初始化;条件判断;步进)

{

//程序代码

}

1.进行变量初始化。

2.执行条件判断:

如果条件判断的结果为假,则退出for循环,不再执行循环体中的内容;如果条件判断为真,则执行循环体中的内容。

3.执行步进。

4.重复步骤2

8.求模运算符:

用%表示,表示求出两个整型相除的余数。

inta=6%5

a的结果就是1

第三节

1.break通常用在循环语句中,用于跳出循环语句,执行循环下面的语句。

2.continue通常用在循环语句中,用于跳出本次循环,开始下一次循环的执行。

3.面向对象的程序设计:

Object-OrientedProgramming(OOP)。

4.类(class):

可以将类看做是数据(通常使用名词表示,叫做成员变量或属性)与操纵数据的方法(通常使用动词表示,方法叫做method)的结合体。

5.如何定义类?

修饰符class类的名字

{

//类的内容(包含了属性与方法)

}

6.方法。

如何定义方法?

修饰符返回类型方法名称([参数1,参数2,参数3……])

{

//方法体

}

7.main方法是整个Java程序的入口点,如果类的定义中没有main方法,则程序将无法执行。

8.方法的定义不能嵌套,不能在一个方法中定义另外一个方法。

方法只能定义在类中。

9.关于方法的执行:

首先需要定义方法,接下来就可以使用方法(调用方法),当方法调用完毕之后,方法可以返回值。

方法到底是否返回值是由方法的定义决定的。

10.对象(Object),什么是对象?

对象是类的一种实例化表示。

对象与类的关系是非常紧密的。

类是一种抽象的概念,对象是一种具体的概念;对于现实世界中:

人(Person)就是一种抽象的概念;而具体的人(比如张三,李四,王五)则是具体的概念,对应于面向对象程序设计,人就可以看作是类,而张三这个具体的人就可以看作是对象。

11.如何生成对象?

通过类来生成对象(通常使用new关键字来生成对象)。

publicclassPerson

{

}

类名变量名=new类名();

Personperson=newPerson();

Personperson2=newPerson();

Personperson3=newPerson();

12.方法调用需要通过对象来完成。

方法调用的形式为:

对象变量.方法名([参数值1,参数值2,参数值3…..])

13.关于方法的注意事项:

1)在方法定义中,方法的返回类型与return后面的变量或者常量的类型保持一致。

2)在方法调用时,给方法传递的参数需要与方法定义时的参数保持一致(参数个数一致,参数类型一致)

3)方法定义时的返回类型与接收方法返回值的变量类型保持一致。

14.

publicintadd(inta,intb)

{

intc=a+b;

returnc;

}

方法定义时的参数叫做形式参数

intresult=test.add(1,2);

调用方法时所赋予的具体值叫做实际参数。

15.关键字void表示方法不返回值。

16.如果方法不返回值,那么声明的时候使用void关键字,在方法定义中可以有两种情况实现不返回值的方法

1)不使用return语句。

2)使用return,但return后面没有任何值或者变量,后面只有一个分号,表示退出方法,返回到方法的调用端

使用方法:

return;

 

第四节

1.类中的属性又叫做成员变量(membervariable),属性用英文表示为property或attribute。

2.对象(Object)又叫做实例(Instance)。

生成一个对象的过程又叫做实例化。

3.命名约定

1)类:

首字母大写,如果一个类名由多个单词构成,那么每个单词的首字母都大写,中间不使用任何的连接符。

比如Person类,MemberTest类。

2)方法:

首字母小写,如果一个方法由多个单词构成,那么第一个单词的所有字母全都小写,从第二个单词开始,每个单词的首字母大写。

比如add,addThreeInt.

3)属性:

与方法相同。

比如age,ageOfPerson。

4.属性需要定义在类中,又叫做成员变量;而定义在方法中的变量叫做局部变量。

5.局部变量使用前必须要声明并赋初值;成员变量使用前必须要声明,但可以不赋初值。

6.如何定义属性?

publicclassPerson

{

修饰符类型属性名称;

}

如何使用属性?

与方法一样,使用.运算符,首先需要生成类的实例,然后使用实例+”.”的方式来使用属性。

Personperson=newPerson();

person.age

7.成员变量与局部变量的联系与区别:

1)无论是成员变量还是局部变量,使用前都需要声明(定义)。

2)对于局部变量来说,使用前必须要初始化;对于成员变量来说,使用前可以不初始化。

如果没有初始化成员变量就开始使用,那么每个类型的成员变量都有一个默认的初始值:

a)byte,short,int,long类型的初始值为0

b)float,double类型的初始值为0.0

c)char类型的初始值为空的字符

d)boolean类型的初始值为false

7.引用类型:

引用类型是用在对象上的。

一个对象可以被多个引用指向,但同一时刻,每个引用只能指向唯一的一个对象。

如果一个对象被多个引用所指向,那么无论哪个引用对对象的属性进行了修改,都会反映到其他的引用当中。

8.如果一个类包含了属性与方法,那么该类的每一个对象都具有自己的属性,但无论一个类有多少个对象,这些对象共享同一个方法。

9.关于方法参数传递的总结:

对于Java中的方法参数传递,无论传递的是原生数据类型还是引用类型,统一是传值(passbyvalue)。

10.什么类型的引用就能指向什么类型的对象,比如People类型的引用就能指向People类型的对象,但不能指向Student类型的对象。

比如:

Peoplep=newPeople();//正确

Peoplep=newStudent();//错误

11.构造方法(Constructor):

构造方法用于完成对象属性的初始化工作,构造方法的特点:

1)构造方法的名字必须与类名完全一致(包含大小写)

2)构造方法没有返回值,连void也不能出现。

3)如果在定义一个类的时候,没有为类声明构造方法,那么Java编译器会自动为类添加一个没有参数且方法体为空的构造方法。

4)如果在定义一个类的时候,为类声明了构造方法,那么Java编译器就不会再为类添加构造方法了。

5)不能显式调用构造方法,构造方法只能通过new关键字隐式调用。

12.new关键字完成了3件事情。

1)为对象开辟内存空间。

2)调用类的构造方法。

3)将生成的对象的地址返回。

13.默认的构造方法:

构造方法没有参数并且方法体为空。

14.使用new来生成对象的时候,后面的小括号()表示构造方法的参数列表,如果构造方法不接收参数,那么小括号中的内容为空;如果构造方法接收参数,那么小括号中的实际参数就需要与构造方法定义中的形式参数保持一致(参数数量一致,参数类型一致,按照顺序逐一赋值)。

15.方法重载(overload):

对于两个或多个方法来说,方法的名字相同,但方法参数不同,这样的方法叫做重载方法。

方法参数不同体现在两点:

1)参数个数不同。

2)参数类型不同。

方法是否重载完全由方法参数决定,方法的返回类型对方法是否构成重载没有任何影响。

16.构造方法的重载:

构造方法的重载与普通方法的重载要求是一样的,都是根据参数个数或参数类型的不同来判断两个或多个构造方法是否构成了重载关系。

17.this关键字:

this是指向当前对象的引用。

Java中的每个对象都拥有一个this引用,用于指向自身。

第五节

1.类中的构造方法可以相互调用,方法是使用this()语句调用,该语句表示调用类中的其他构造方法,其中this后面的小括号表示参数列表。

2.如果构造方法中使用this()语句调用其他构造方法,那么this()语句必须是该构造方法的第一条语句,换句话说,this()语句前面不能有其他任何的执行语句。

3.面向对象的三大特性:

继承、封装、多态。

4.如果一个java源文件定义了多个类,那么最多只能有一个类是public的,同时该java源文件的名字必须要与该public的类名相同;如果多个类都不是public的也是允许的,在这种情况下,java源文件的名字不必与任意一个类名相同。

5.在Java中,继承是通过extends关键字表示的。

classDogextendsAnimal//表示Dog继承了Animal

{

}

在继承当中,被继承的类叫做父类(基类),继承的类叫做子类。

对于上面的代码示例,Animal叫做父类,Dog叫做子类。

6.关于继承需要理解如下3点:

1)父类有的,子类也有。

2)父类没有的,子类可以增加。

3)父类有的,子类可以改变。

7.属性与方法都是可以继承的,但构造方法不能继承。

8.当生成子类对象的时候,首先需要找到父类的不带参数的构造方法,然后执行该构造方法,生成父类的对象,接下来再去调用子类的构造方法,生成子类的对象。

【要想生成子类的对象,首先需要生成父类的对象,没有父类对象就没有子类对象,比如:

没有父亲,就没有孩子】

9.重写(又叫做覆写,英文是Override),指的是父类与子类的方法具有相同的返回类型、相同的方法名称、相同的参数列表,如果满足以上3个条件,那么这两个方法就构成了重写关系。

10.重载与重写的区别:

重载发生在同一个类内部的两个方法;重写发生在父类与子类之间。

11.super关键字:

super表示对父类对象的引用。

12.如果子类使用super()显式指定调用父类的某个构造方法,那么在执行的时候就会寻找与super()指定所对应的构造方法而不会再去寻找父类的不带参数的构造方法了。

与this一样,super也必须要作为构造方法的第一条语句。

13.如果仅仅使用super关键字调用父类的方法,那么super可以放在方法的任意位置上,而不必非得放在第一行语句处。

14.多态(Polymorphism),本质上就是父类型的引用可以指向子类的对象。

15.Animalani=newCat();因为ani引用指向了Cat对象,因此ani调用的都是Cat类里面定义的方法与属性;但需要注意一点:

ani是Animal类型的。

16.Animalani=newCat();ani.cry();当使用多态进行方法调用或属性设置时,首先检查父类中是否有cry()方法,如果没有则编译报错;如果有,则调用子类的cry()方法。

17.关于强制类型转换:

一共有两种类型的强制类型转换

1)向上转换(upcast):

比如说将Cat类型转换为Animal类型,即将子类型转换为父类型。

对于向上转换,不需要显式指定。

2)向下转换(downcast):

比如将Animal类型转换为Cat类型,即将父类型转换为子类型。

对于向下转换,必须要显式指定。

18.包(package)用于将完成不同功能的类分门别类,放在不同的目录中。

包的定义需要放在源代码的最上面,如packagecom.tsinghua;包名通常是公司网站域名的反转。

包体现在硬盘上,就是一种嵌套的目录结构。

编译带有package声明的java源文件有两种方式:

1)直接编译,然后根据类定义时所声明的包名,逐一建立目录结构,最后将生成的class文件放到该目录结构中。

(很少使用,比较麻烦)

2)使用编译参数-d:

方式为javac–d.源文件.java。

这样在编译后,编译器会自动帮助我们建立好包所对应的目录结构。

19.有两个包名:

分别是aa.bb.cc与aa.bb.cc.dd那么我们称后者为前者的子包。

20.导入(import):

将使用package分离的各个类导入回来,让编译器能够找到所需要的类。

import的语法:

import包.类名;比如:

importcom.tsinghua.Person;

importcom.tsinghua.Man;

21.aa.bb.cc是aa.bb的子包

importaa.bb.*;并不会导入aa.bb.cc下的类。

importaa.bb.*;

importaa.bb.cc.*;

22.如果没有为一个类指定package,那么这个类所在的包就叫做默认包。

23.关于package、import、class的顺序问题。

1)首先需要定义package(可选)

2)接下来使用import进行导入(可选)

3)然后才是类的定义

第六节

1.数组(Array):

相同类型数据的集合叫做数组。

2.如何定义数组?

type[]变量名=newtype[数组中元素的个数];比如说可以按照下列方式定义一个长度为10的整型数组:

int[]a=newint[10];

或者:

type变量名[]=newtype[数组中元素的个数];

type[]变量名={逗号分隔的初始化值列表};初始化列表中有多少个值,数组的长度就为多少,同时初始化列表会按照顺序将值赋给数组的每一个元素。

3.数组中元素的索引是从0开始的。

对于数组来说,最大的索引==数组的长度–1。

4.Java中的每个数组都有一个名为length的属性,表示数组的长度。

数组长度一旦确定,就不能改变大小。

5.当生成一个数组对象后,数组中的每个元素都有一个初始值,每种元素类型的初始值与类的属性的初始值是一样的,比如int类型的初始值为0,boolean类型的初始值为false等。

6.int[]a=newint[10];,其中a是一个引用,它指向了生成的数组对象的首地址,数组中的每个元素都是int类型,其中仅存放数据值。

7.Person[]p=newPerson[10];其中p是一个引用,它指向了生成的数组对象的首地址,数组中的每个元素都是Person类型的引用,每个引用指向了一个Person类型的对象。

8.所谓二维数组,其实指的就是数组的数组,它是一种平面的二维结构,定义方式为:

Int[][]a=newint[2][3];其中的2表示数组的行数,3表示数组的列数。

换句话说,2表示数组的第一维,3表示数组的第二维。

9.如果一个数组为引用

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

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1