Java学习笔记.docx

上传人:b****4 文档编号:11923864 上传时间:2023-04-16 格式:DOCX 页数:17 大小:21.28KB
下载 相关 举报
Java学习笔记.docx_第1页
第1页 / 共17页
Java学习笔记.docx_第2页
第2页 / 共17页
Java学习笔记.docx_第3页
第3页 / 共17页
Java学习笔记.docx_第4页
第4页 / 共17页
Java学习笔记.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

Java学习笔记.docx

《Java学习笔记.docx》由会员分享,可在线阅读,更多相关《Java学习笔记.docx(17页珍藏版)》请在冰豆网上搜索。

Java学习笔记.docx

Java学习笔记

基础语法

 

一,数据类型转换问题

1,byte可以直接赋值,旦范围在127之内包含127;

2,bytecharshort->int->long->float->double;

3,容量小的直接向容量大的转化,容量大的向容量小的转化时需要加强制转化符,格式(类型);

4,类似于1.2的都是double型;

5,多种类型的运算,首先转化为容量大的;

6.类似于123的默认为int;

 

二,格式问题

1,大括号对齐

2,遇到{缩进,Tab/shift+tab

3,程序块之间加空行

4,并排语句之间加空格

5,运算符两侧加空格

6,{前面有空格

7,成对编程

 

三,运算符

1,i++先赋值在自增;++i先递增1在赋值;

2,!

非,&与,|或,^异或,&&短路与,||短路或

3,+除用于算数加法运算外,还可以对字符串进行连接操作例如:

Strings="Hello"+"World",就是“HelloWorld”。

4,+运算符两侧的操作数中只要有一个是字符串String类型系统就会自动将另一个操作数转化为字符串然后在进行连接;

例如intc=12;System.out.println("c="+c);

5,x?

y:

z表示的意思是若x为true则结果为y的值,否则就是z的值;

 

四,if和for

1,if

if...else...

if...elseif...

if...elseif...elseif...

if...elseif...elseif...else

2,只有一句话需要执行的语句时,可以省略{}

3,for语句的形式

for(表达式1;表达式2;表达式3){语句;...;}

执行的过程:

首先执行表达式1,接着执行表达式2,若表达式2为true,则执行语句,接着计算表达式3,在判断表达式2的值;依次重复下去,直到表达式2的值为false

for语句中的三个表达式都可以省略

4,while语句为如下形式:

while(逻辑表达式){语句;...;}

执行过程:

先判断逻辑表达式的值。

若=true,则执行其后面的语句,然后再次判断条件并反复执行,直到条件不成立为止

5,while语句为如下形式:

do{语句;...;}while(逻辑表达式);

执行过程:

先执行语句,在判断逻辑表达式的值,true的话执行语句否则结束循环

6,break语句用于终止某个语句块的执行。

用在循环语句体中,可以强行退出循环

例子:

publicclasstest{

publicstaticvoidmain(String[]args){

intstop=4;

for(inti=1;i<=10;i++){

if(i==stop)break;

System.out.println("i="+i);

}

}

}

打印结果i=1i=2i=3

7,continue语句用在循环语句体中,用于某次循环过程跳过循环体中continue语句下面未执行的循环,开始下一次循环过程

例子:

publicclasstest{

publicstaticvoidmain(String[]args){

intskip=4;

for(inti=1;i<=10;i++){

if(i==skip)continue;

System.out.println("i="+i);

}

}

}

打印结果i=1i=2i=3i=5

8,switch语句

switch(){

casexx:

...

casexx:

...

default:

...

}

case穿透要加break

多个case可以合并到一起

java中switch语句只能探测int类型值

 

面向对象

一,

1,指导性的思想:

首先考虑在这个问题里有哪些类,有哪些对象;然后考虑这些类和对象每一种类和对象有哪些属性和方法;最后考虑类和类之间具备了什么样的关系。

2,类的定义主要有两部分组成--成员变量和方法。

例如:

用class关键字定义一个类

classperson{

privateintid;

privateintage=20;//定义用户变量

publicintgetage(){returnage;}

publicvoidsetage(inti){age=i;}

publicintgetid(){returnid;}//定义方法

}

3,对象的建立和使用

必须使用new关键字创建对象

使用对象(引用).成员变量或来引用对象的成员变量

使用对象(引用).方法(参数列表)来调用对象的方法

同一类的每个对象有不同成员变量的存储空间

同一类的每个对象共享该类的方法

4,成员变量和局部变量的区别:

局部变量必须首先声明然后赋值最后才能使用;成员变量不需要进行初始化系统默认自动进行初始化。

5,约定俗成的命名规则

类名的首字母大写

变量名和方法名的首字母小写

运用驼峰标示

6,如果一个方法前面不写static需要new一个对象,然后才能调用

调一个方法必须new一个对象

第三章面向对象中的08内存解析3值得一看

 

7,方法的重载是值在一个类中可以定义相同的名字,但是参数不同的多个方法,调用时,可以根据参数选择相应的方法。

二,关键字

1,this

在类的方法定义中使用的this关键字代表使用该方法的对象的引用。

实际当中,如果你new一个对象出来,this指的就是当前这个对象。

你对那个对象调这个方法this就指的是谁

当必须指出当前使用方法的对象是谁时要使用this

又是使用this可以处理方法中成员变量和参数重名的情况

This可以看作是一个变量,他的值是当前对象的引用

例子:

PublicclassLeaf{

inti=0;

Leaf(inti){

this.i=i;//形参和成员变量都是i,this.i指的是成员变量

}

Leafincreament(){

i++;

returnthis;

}

Voidprint(){

System.out.println(“i=”+i);

}

Publicstaticvoidmain(String[]args){

Leafleaf=newLeaf(100);

Leaf.increament().increament().print();

}

}

2,static

用static声明的方法是静态方法,在调用该方法时,不会讲对象的引用传递给他,所以在static方法中不可以访问非static的成员。

----静态方法不再针对某个对象调用,所以不能访问非静态成员。

可以通过对象引用或类名(不需要实例化)来访问静态成员。

 

局部变量在栈里分配,成员变量在堆里分配。

3,package和import

用来解决类的重名问题。

Package必须写在源代码的第一行

包名前面约定俗成的把公司的域名倒过来,后面随便跟,用.跟。

例如:

Packagecom.sxt;

则该文件中所有的类位于,\com\sxt目录下

如果将一个类打包,则使用该类时,必须使用该类的全名(例如:

com.sxt.myclass),java编译器才会找到该类。

打包的类必须位于正确的目录下,即和包得层次完全的一致。

或者可以用import引入即在开头写上importcom.sxt.myclass也可以用*代替所有的类。

注意类的源文件可能会产生影响,所以要删除。

Class文件的最上层包的父目录必须位于classpath下

执行一个类必须写全包名。

Java.lang里的包不需要引入,可以直接用;其他需要引入。

打包语句:

jar–cvfxx.jar*.*

可以将jar包当成路径设在classpath

 

三,

1,类的继承与权限控制

Java中使用extends关键字实现类的继承机制,其语法规则为:

class[extends]

{……}

通过继承,子类拥有了基类(superclass)的所有成员(成员变量和方法)

Java只支持单继承,不允许多继承。

一个子类只能有一个基类,一个基类可以派生出多个子类。

2,访问控制

访问控制的修饰符有四个:

privatepublicdefaultprotected

Class的权限修饰符只可以用publicdefault

Public类可以在任意地方被访问

Default类只可以被同一个包内部的类访问

3,方法的重写

在子类中可以根据需要对从基类中继承来的方法进行重写。

重写方法必须和被重写方法具有相同的方法名称,参数列表和返回类型

重写方法不能使用比被重写方法更严格的访问权限。

重写最好用copy

4,super关键字

java中使用super来引用基类的成分。

例如:

classFatherclass{

publicintvalue;

publicvoidf(){

value=100;

System.out.println(“Father.value=”+value);

}

}

classChildclassextendsFatherclass{

publicintvalue;

publicvoidf(){//方法重写

Super.f();

Value=200;

System.out.println(“Childclass.value=”+value);

System.out.println(value);

System.out.println(super.value);

}

}

5,Object类是所有java类的根基类

如果在声明中没有使用extends关键字指明其基类,则默认其基类是object类。

Publicclassperson{

}

等价于:

Publicclasspersonextendsobject{

}

6,toString方法

object类中定义有publicStringtoString()方法,其返回值是String类型,描述当前对象的有关信息。

进行String与其他类型数据的连接操作时,如:

(System.out.println(“info”+person))将自动调用该对象类的toString()方法。

可以根据需要在用户自定义类型中重写toString()方法。

7,equals方法

object定义的类中有:

publicbooleanequals(objectobj)方法

提供定义对象是否相等的逻辑

Object的equals方法定义为:

x.equals(y)当x和y是同一个对象的应用时返回true否则返回flase。

8,对象转型(casting)

一个基类的引用类型变量可以指向起子类的对象。

一个基类的引用不可以访问其基类新增加的成员(属性和方法)。

可以使用引用变量instanceof类名来判断该引用型变量所指向的对象是否属于该类或该类的子类。

子类的对象可以当做基类的对象来使用称作向上转型(upcasting),反之称作向下转型(downcasting)。

9,动态绑定和多态

动态绑定是指在执行期间(而非编译期)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。

多态要满足三个条件:

1)要有继承

2)要有重写

3)父类引用指向子类对象

10,抽象类

用abstract关键字来修饰一个类时,这个类叫做抽象类,用abstract关键字来修饰一个方法时,这个方法叫做抽象方法。

含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。

抽象类不能被实例化。

抽象方法只需声明不需实现。

要自己实验一下

11,Final关键字

Final的值不能被改变

Final的成员变量

Final的局部变量(形参)

Final的方法不能被重写。

Final的类不能不继承。

12,interface(接口)

本质上是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。

1)多个无关的类可以实现同一个接口

2)一个类可以实现多个无关的接口

3)与继承关系类似,接口与实现类之间存在多态性

4)定义java类的格式:

class[extends][implements[,]*]{*s}

接口中声明的属性默认为publicstaticfinal

接口中只能定义抽象方法,而且这些方法默认为public

接口举例:

interfacesinger{

publicvoidsing();

publicvoidsleep();

}

Classstudentimplementssinger{//要用implement而不能用extends,因为上面是interface

PrivateStringname;

Student(Stringname){

This.name=name;

}

Publicvoidstudy{

Stystem.out.println(“studying”);

}

PublicstringGetname(){returnname;}

Publicvoidsing(){

System.out.println(“studentissinging”);

}

System.out.println(“studentissleeping”);

}

异常处理

运行期出现的错误观察错误的名字和行号最重要

1,异常的概念

举例说明:

publicclassTestEx

{

publicstaticvoidmain(String[]args){

int[]arr={1,2,3};

System.out.println(arr[2]);

try

{

System.out.println(2/0);

}

catch(ArithmeticExceptionae)

{

System.out.println("系统正在维护,请与管理员联系");

ae.printStackTrace();

}

}

}

2,异常的捕获和处理

try{

//可能抛出的异常语句

}

catch(SomeException1e){

}

catch(SomeException2e){

}

finally{

}

Finally段的代码无论是否发生异常都会执行。

本章的五个关键字:

trycatchfinallythrowthrows

注意:

重写方法需要抛出与原来方法所抛出异常类型一致或不抛出异常。

 

数组

一,数组概述

数组可以看成许多相同数据类型组合,对这些数据的统一管理。

数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。

数组中的元素可以是任何数据类型,包括基本类型和引用类型。

1,一维数组的声明

方式:

typevar[];或type[]var;

例如:

inta1[];或int[]a2;

doubleb[];

person[]p1;Strings2[];

java语言中声明数组时不能指明其长度(数组中元素的个数),例如:

inta[5];//非法

2,数组对象的创建

Java中使用关键字new来创建数组对象,格式为:

数组名=new数组元素的类型[数组元素的个数]

3,数组的动态初始化

数组定义与为数组元素分配空间和赋值的操作分开进行。

PublicclassTest{

Publicstaticvoidmain(String[]args){

inta[];

a=newint[3];

a[0]=3;a[1]=9;a[2]=8;

datedays[];

days=newdate[3];

days[0]=newdate(1,4,2004);

days[1]=newdate(2,4,2004);

days[2]=newdate(3,4,2004);

}

}

Classdate{

}

4,数组的静态初始化

定义数组的同时就为数组元素分配空间和赋值。

PublicclassTest{

Publicstaticvoidmain(String[]args){

inta[]={3,9,8};

datedays[]={

newdate(1,4,2004),

newdate(2,4,2004),

newdate(3,4,2004)

};

}

}

Classdate{

}

5.数组元素的引用

定义并用运算符new为之分配空间后,才可以引用数组中的每个元素,数组元素的引用方式为:

arryName[index]

index为数组元素下标,可以是整型常量和整型表达式。

如:

a[3],b[i],c[6*i]

数组下标从0开始,常速为n的合法下标的取值范围为:

0-n-1

每个数组都有一个属性length指明他的长度,例如

a.length的值为数组a的长度(元素的个数)

6,学会选择排序法和冒泡法

7,二维数组

二位数组可以看成是以数组为元素的数组。

例如:

inta[][]={{1,2},{3,4,5},{6,7,8,9}};

java中多维数组的声明和初始化都是由高维到低维,例如:

inta[][]=newint[3][];

a[0]=newint[2];

a[1]=newint[4];

a[2]=newint[3];

intt1[][]=newint[][4];//非法的

8,二位数组初始化

(1)静态初始化

intintA[][]=newint{{1,2},{3,4},{5,6,7}};

intintB[][]=newint{{1,2},{2,3},{3,4,5}};//非法

(2)动态初始化

inta[][]=newint[3][5];

intb[][]=newint[3][];

b[0]=newint[2];

b[1]=newint[3];

b[2]=newint[5];

9,数组的拷贝

Publicstaticvoidarraycopy(objectsrc,intsrcpos,objectdest,intdestpose,intlength)

可以用于数组src从第srcpos项元素开始的length个元素拷贝到目标数组从destpos开始的length个位置。

 

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

当前位置:首页 > 医药卫生 > 基础医学

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

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