JAVA串讲基本语法_第1页
JAVA串讲基本语法_第2页
JAVA串讲基本语法_第3页
JAVA串讲基本语法_第4页
JAVA串讲基本语法_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、java基本语法java标识符标识符1 1、标识符:、标识符:编程语言中用来标识变量、函数、常量等的名字,就是标识符。编程语言中用来标识变量、函数、常量等的名字,就是标识符。 1-11-1:标识符的命名规则:标识符的命名规则: : a a、标识符由字母、下划线、美元符号、标识符由字母、下划线、美元符号($)($)和数字构成。和数字构成。 b b、标识符由字母、下划线、美元符号、标识符由字母、下划线、美元符号($)($)开头开头 c c、大小写敏感、大小写敏感 1-21-2:关键字:关键字: 编程语言中预留的标识符,通常在编程语言中代表某种特定的编程语言中预留的标识符,通常在编程语言中代表某种特

2、定的用途如:用途如:public ,class,privatepublic ,class,private 注:关键字不能被程序员占用的。2 2、数据类型:、数据类型: 2-1:2-1:基本数据类型:基本数据类型: 数值类型数值类型: 整型:整型:bytebyte、shortshort、intint、longlong 浮点型:浮点型:float 、double 其它类型:其它类型: 字符型:字符型:char 布尔型:布尔型:boolean 2-2 引用类型引用类型 java中所有的类都是属于引用类型。如:string,date java标识符标识符1、变量:、变量: 是内存中一块区域,其大小由变

3、量数据类型决定,程序员是内存中一块区域,其大小由变量数据类型决定,程序员通过变量名来引用这块区域,并向其中读或写数据。通过变量名来引用这块区域,并向其中读或写数据。 1-1: 定义变量的语法:定义变量的语法: 类型类型 变量名变量名= 初始化值初始化值; 注:变量未初始化是不能使用的。注:变量未初始化是不能使用的。2、常量、常量: 是值不可变的变量。是值不可变的变量。 2-1:定义常量:定义常量:final final 变量名变量名 = 初始化值初始化值; 常用的地方是,在一个类中定义一个类常量(即定义一个常用的地方是,在一个类中定义一个类常量(即定义一个类的成员为常量)类的成员为常量)变量、

4、常量变量、常量变量、常量变量、常量public class vartest public static void main(string args) / todo auto-generated method stubint radiu = 10;string info = 圆的半径为:圆的半径为:;system.out.println(info+radiu);string info2 = 圆的面积为圆的面积为;double area = radiu*radiu*pi;/double area1 = radiu*radiu*math.pi; /math定义了一个定义了一个pi常量常量system

5、.out.println(info2+area); static final double pi = 3.1415926; /类常量,通常为类常量,通常为static数学运算符:+ ,- ,* ,/,%(取模) ,+ , - - 关系运算: , ,= ,!=condition ? expression1:expression2(三元运算符)逻辑运算符: | , & , !位运算符: & , | , (异或) ,(非)(右移运算符) , (右移运算符)注:按位与&及按位或|除了位运算外还可以用于一般的逻辑运算其效果与&和|大致一致。 区别在于:&和|具备短路运算的特性而&和|没有。eg: 当x=

6、0 比较 x!=0&1/xx+y 和 x!=0&1/xx+y 两个表达式的执行状态运算符运算符运算符运算符示例示例public class javademo1public static void main() system.out.println(这是一个最简单这是一个最简单java程序程序); 3、书写规范:、书写规范: 3-1: 前面带空格前面带空格.; 3-2: 要与对应的要与对应的所在行首对齐;所在行首对齐; 3-3: 内的语句要相对于内的语句要相对于有一个缩进有一个缩进(tab或或shift+tab); 3-4:子模块相对于父模块要有一个缩进;:子模块相对于父模块要有一个缩进; 3-

7、5: 一般来说每条语句占一行,一行写多条语句则语句间要有空格。一般来说每条语句占一行,一行写多条语句则语句间要有空格。 3-6:一条语句过长时,可以占多行(尽量避免一行的长度超过:一条语句过长时,可以占多行(尽量避免一行的长度超过80个字符,因个字符,因为很多终端和工具不能很好处理之)。可以依据如下一般规则断开之:为很多终端和工具不能很好处理之)。可以依据如下一般规则断开之:- 在一个逗号后面断开在一个逗号后面断开- 在一个操作符前面断开在一个操作符前面断开如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进缩

8、进8个空格。个空格。 标识符命名要符合业务意义;标识符命名要符合业务意义; 以下是断开的一些例子:以下是断开的一些例子: somemethod(longexpression1, longexpression2, longexpression3, longexpression4, longexpression5); longname1 = longname2 * (longname3 + longname4 - longname5) + 4 * longname6; /preffer示例示例1、数值类型之间的隐式转换、数值类型之间的隐式转换: (按由左至右或箭头方向按由左至右或箭头方向) (由宽

9、度由窄到宽,由整数到小数由宽度由窄到宽,由整数到小数) char byte-short-int-long float- double判断如下表达式的最终数据类型:判断如下表达式的最终数据类型: 12+22+23.2f a+12隐式类型转换隐式类型转换引用类型的隐式转换引用类型的隐式转换: 子类类型可自动隐式转换为父类类型:子类类型可自动隐式转换为父类类型: eg:public class typetest public static void main(string args) / todo auto-generated method stubshape shape ;circle circl

10、e = new typetest().new circle(red,12);shape = circle; /子类自动隐式转换为父类system.out.println(shapecolor is +shape.getcolor();system.out.println(circlecolor is +circle.getcolor(); 隐式类型转换隐式类型转换class shape string color;public shape(string color) this.color = color;public string getcolor() return color;public v

11、oid setcolor(string color) this.color = color; class circle extends shapeint radius ;public circle(string color, int radius) super(color);this.radius = radius;public int getradius() return radius;public void setradius(int radius) this.radius = radius; 隐式类型转换隐式类型转换 语法语法: (类型类型)表达式表达式1、数值类型的强制转换:、数值类型

12、的强制转换: 一般来说,由小数到整数,或取值范围宽的类型到取值范围窄的类型一般来说,由小数到整数,或取值范围宽的类型到取值范围窄的类型都须要强制转换都须要强制转换 float a = 23.2; /不能由不能由double型数据直接赋给浮点型型数据直接赋给浮点型 float a = (float)23.2; 判断下面的赋值表达式哪些可行判断下面的赋值表达式哪些可行 int a = 12.3;- float b = 23.2/2+11;- int c = 10 byte d= c;显式(强制)类型转换显式(强制)类型转换2、引用类型的强制转换:、引用类型的强制转换: 子类类型子类类型 对象对象

13、= (子类类型子类类型)父类对象父类对象(前提:某父类型的引用变量值由子类引用变量类型转换而来,那么该(前提:某父类型的引用变量值由子类引用变量类型转换而来,那么该父类型的引用变量可以被强转为子类型)父类型的引用变量可以被强转为子类型)如:接前例:父类:如:接前例:父类:shape 子类:子类:circle例例1: shape shape; .circle cir = new circle(); shape = cir /将子类引用变量的值类型转换后赋给父类引用变量将子类引用变量的值类型转换后赋给父类引用变量 circle circle2 = shape; /错误,父类不能隐式转换为子类错误,

14、父类不能隐式转换为子类 circle circle2 = (circle)shape;/正确正确 java.sql.date date =(java.sql.date)new java.util.date();/不正确不正确显式(强制)类型转换显式(强制)类型转换注:没有继承关系的类型之间不能类型转换注:没有继承关系的类型之间不能类型转换如:如:string date = (string)new date();-class rectangle extends shape则则: rectangel rec = (rectangle)circle; 流程控制语句流程控制语句分支语句分支语句:if(

15、condition1).else if(condition2).else多分支语句:多分支语句:switch(choice) /注注:choice只能是枚举值或整型只能是枚举值或整型,而而short,byte,char会自动转型为会自动转型为int case value1: break; case value2: 语句语句; break; 语句语句; default: . break; 循环控制语句循环控制语句: while(condition)语句语句; . 流程控制语句流程控制语句do 语句; while(condition)for(初始化语句,;condition;自增语句,) 语句;

16、;for循环例子循环例子:while循环例子循环例子: 根据输入的固定利率和每年存入的金额及退休后所须存储根据输入的固定利率和每年存入的金额及退休后所须存储目标余额,计算要多少年后退休?目标余额,计算要多少年后退休?数组:数组:常见的一种数据结构,用来顺序存储同类型的值的集合。常见的一种数据结构,用来顺序存储同类型的值的集合。在内存占用一段连续的内存区域。在内存占用一段连续的内存区域。 (java中数组也是一个对象)中数组也是一个对象) 1、数组的声明:、数组的声明: 数据类型数据类型 数组名数组名; 或或 数据类型数据类型 数组名数组名=new 数据类型数据类型数组大小数组大小 ;/初始化初

17、始化或或数据类型数据类型 数组名数组名=new 值值1,值值2,值值n ;/初始化初始化 数组数组在在jdk5.0中提供了一种新的循环结构用来遍历集合中的元素中提供了一种新的循环结构用来遍历集合中的元素非常有效,当然数组也是一种集合,故也可应用。非常有效,当然数组也是一种集合,故也可应用。for(数据类型数据类型 item:collection) 语句语句; 数组数组面向过程:面向过程: 程序设计者必须指定计算机执行的具体步骤程序设计者必须指定计算机执行的具体步骤,程序设计者不仅要考虑程序设计者不仅要考虑程序要程序要“做什么还要解决做什么还要解决怎么做怎么做的问题的问题,根据程序要根据程序要做

18、什么做什么的要求的要求,写出一个个语句写出一个个语句,安排好它们的执行顺序安排好它们的执行顺序.怎样设计这些步骤怎样设计这些步骤,怎样保证怎样保证它的正确性和具有较高的效率它的正确性和具有较高的效率,这就是算法需要解决的问题这就是算法需要解决的问题.面向对象:面向对象: 首选抽象出问题领域内的相关的对象和它们的属性和行为,并找出对首选抽象出问题领域内的相关的对象和它们的属性和行为,并找出对象之间的关系。这样当解决问题时,只须调用相关对象去完成即可。象之间的关系。这样当解决问题时,只须调用相关对象去完成即可。 面向对象设计实现了对象级别的封装和复用(面向过程只能实现方法面向对象设计实现了对象级别

19、的封装和复用(面向过程只能实现方法级别的复用),更贴近人解决问题的思考方式,同时更易于管理,复级别的复用),更贴近人解决问题的思考方式,同时更易于管理,复用的程度也更高。用的程度也更高。对象与类对象与类对象与类对象与类1、对象的三个主要特性:、对象的三个主要特性: 对象的行为、对象的状态、对象的标识对象的行为、对象的状态、对象的标识2、类:、类: 是对具有相同特征和行为的对象集合的抽象。可以还可以将是对具有相同特征和行为的对象集合的抽象。可以还可以将之看成是生成对象的代码模块。之看成是生成对象的代码模块。 2-1:类的三大特征类的三大特征 封装:封装:隐藏对象内部的细节,向外部提供接口,让调用

20、者访问隐藏对象内部的细节,向外部提供接口,让调用者访问 继承:继承:从已有的类扩展出一个新类,新类具备原类的所有特性,并扩展出自己新的从已有的类扩展出一个新类,新类具备原类的所有特性,并扩展出自己新的特性特性 多态:多态:对同一个消息,多种不同的响应方式对同一个消息,多种不同的响应方式2-2:类与类之间的关系:类与类之间的关系: is-a:继承继承 has-a:又分为聚合和组合又分为聚合和组合 另外还有一种依赖关系另外还有一种依赖关系对象与类对象与类2-2-1: a、聚合、聚合: 一个类包含其它类,但没有必须的依存关系。一个类包含其它类,但没有必须的依存关系。 公司公司-员工员工 足球队足球队

21、-队员队员 b、组合:一个类包含其它类、组合:一个类包含其它类,存在必须的依存关系存在必须的依存关系 人人-人脑人脑 2-2-2:关联关联(依赖依赖):最弱的关系:最弱的关系,一个类在某种情况下要向其它的类发送消一个类在某种情况下要向其它的类发送消息。息。 公司的经理公司的经理-考核员工考核员工 公司的经理公司的经理对象与类对象与类3、类的构造、类的构造: 3-1: 默认构造方法:默认构造方法: 不带参数的构造方法。若未定义构造方法,则编译默认不带参数的构造方法。若未定义构造方法,则编译默认建立一个空的构造方法。建立一个空的构造方法。 3-2:构造方法重载:构造方法重载: 3-3: 子类构造方

22、法中必须在第一行调用父类的构造方法,子类构造方法中必须在第一行调用父类的构造方法,若父类有默认构造方法,则可省略调用代码,由编译隐式若父类有默认构造方法,则可省略调用代码,由编译隐式在子类构造方法中调用父类的默认构造方法。在子类构造方法中调用父类的默认构造方法。 注:一个注:一个.java文件夹中只能一个文件夹中只能一个 4、变量分类:、变量分类:4-1:基本类型变量和引用类变量:基本类型变量和引用类变量 基本类型变量:存放基本类型数据的值。基本类型变量:存放基本类型数据的值。 引用类型变量引用类型变量: 存放类实例的引用。存放类实例的引用。 4-2:局部变量和全局变量局部变量和全局变量: 局

23、部变量:在方法内部定义的变量称为局部变量。局部变量:在方法内部定义的变量称为局部变量。 全局变量:类的成员称为全局变量。全局变量:类的成员称为全局变量。 注:全局变量若没有在定义时初始化则会有一个默认初始化值。注:全局变量若没有在定义时初始化则会有一个默认初始化值。 引用类型变量初始化值为引用类型变量初始化值为null。 基本类型变量中数值型一律初始化为基本类型变量中数值型一律初始化为0,char型初始化为型初始化为 ,boolean为为false对象与类对象与类请判断输出结果:class number public int i;public number(int i)this.i=i;对象与

24、类对象与类string aa = aa;string bb = bb;aa = bb;bb.substring(0);int m = 1;int n = 10;m=n;+n;number num1 = new number(10);number num2 = new number(12);num2=num1;num1.i=22;system.out.println(aa=+aa+,bb=+bb);system.out.println(m=+m+,n=+n);system.out.println(num1.i=+num1.i+,num2.i+num2.i);对象与类对象与类5、访问控制:、访问控

25、制:访问控制符访问控制符在类的内部在类的内部同一包内同一包内子类子类 任意位置任意位置 private yes default yes yes protected yes yes yes public yes yes yes yes在在java中类、类的成员变量、类的成员方法都用上述的访问控制符进行访问权限中类、类的成员变量、类的成员方法都用上述的访问控制符进行访问权限的控制,若省略访问控制符则为的控制,若省略访问控制符则为default对象与类对象与类对象与类对象与类请找出错误请找出错误:在在first.java中中class parent private int a; int b; pro

26、tected int c; public int d;class parent2 public static void main( strings args) parent p = new parent(); p.a=10;p.b=10; p.c=10;p.d=10; 在在scecond.java中中package m;class child extends parent public static void main( strings args) parent p = new parent(); p.a=1; p.b=1; p.c=1; p.d=1; 6、多态:、多态: 6-1: 方法重载:

27、方法重载: 同一个类中对定义多个同名方法,它们的参数类型或参数的个数不同一个类中对定义多个同名方法,它们的参数类型或参数的个数不一致。一致。 6-2:方法重写:方法重写:子类中重新定义父类的一个方法子类中重新定义父类的一个方法(即方法签名相同的方法。即方法签名相同的方法。)。 限制:限制: 不能更改被重写方法的返回类型。不能更改被重写方法的返回类型。 不能有比被重写方法的更严格的访问控制。不能有比被重写方法的更严格的访问控制。对象与类对象与类7、抽象类:、抽象类: 多用来描述一个抽象的通用的概念,该概念泛指一类事物,但不指向多用来描述一个抽象的通用的概念,该概念泛指一类事物,但不指向特定的对象

28、。如:动物、人。特定的对象。如:动物、人。 另外,另外,java中还常用用抽象类来给定某个接口的默认实现,这样用只须中还常用用抽象类来给定某个接口的默认实现,这样用只须从抽象类继承,重写想要重写的方法,而不必实现所有的方法。从抽象类继承,重写想要重写的方法,而不必实现所有的方法。 7-1:抽象类是用:抽象类是用absract修饰的类。它不能被实例化,但可声明引用变修饰的类。它不能被实例化,但可声明引用变量。量。 7-2:抽象类中可以有两种类型的成员方法:抽象类中可以有两种类型的成员方法: 抽象方法:用抽象方法:用abstract修饰的方法,只有声明没有实现(只在抽象类修饰的方法,只有声明没有实

29、现(只在抽象类中声明)。中声明)。 普通方法:有声明有实现。普通方法:有声明有实现。 7-3:可以有成员变量(属性),请注意:可以有成员变量(属性),请注意abstract不能修饰成员属性不能修饰成员属性 7-4: 若子类若不是抽象类则必须实现所有的抽象方法。若子类若不是抽象类则必须实现所有的抽象方法。类与对象类与对象找出错误并改正找出错误并改正public abstract class animal public abstract string color; public abstract void eat(); public abstract void bid();class aa ext

30、ends animalpublic static void main(string args) aa aa = new aa(); 类与对象类与对象关键字:关键字: super,this,staticsuper: 父类的引用父类的引用this:当前类的引用当前类的引用static :定义静态资源定义静态资源 包括:静态内部类、静态成员变量、静态成员方法包括:静态内部类、静态成员变量、静态成员方法. -静态资源是依附类的,在类加载的同时被加载,为该类静态资源是依附类的,在类加载的同时被加载,为该类所有实例所共用。可通过类名来调用,当然也可通过实例所有实例所共用。可通过类名来调用,当然也可通过实例

31、来调用。来调用。 -静态成员方法只能直接访问类中的静态资源静态成员方法只能直接访问类中的静态资源对象与类对象与类8、接口:、接口: 用于定制一组操作契约,也可说是制定一个操作标准。用于定制一组操作契约,也可说是制定一个操作标准。8-1:按接口编程思想:按接口编程思想 编写代码时尽量使用接口,不要过多涉及具体实现,这样的代码更易编写代码时尽量使用接口,不要过多涉及具体实现,这样的代码更易维护。维护。8-2:可将接口看成是一个特殊的抽象类:可将接口看成是一个特殊的抽象类: -接口内可以声明成员变量,且都为接口内可以声明成员变量,且都为:public static final -接口内只能声明方法,

32、不能实现任何方法。接口内只能声明方法,不能实现任何方法。 -一个类可以同时实现多个接口一个类可以同时实现多个接口,只能继承一个抽象类。只能继承一个抽象类。 -接口的实现类必须实现接口中声明的所有方法接口的实现类必须实现接口中声明的所有方法 对象与类对象与类看以下几段代码,选择正确的。看以下几段代码,选择正确的。对象与类对象与类a)public interface aa int id =10; public void mm(); public void nn();b)public interface aa pubic final id ; public void mm(); public voi

33、d nn();c)public interface aa public static final int id =0; public void mm(); public void nn();b)public interface aa protected static final int id = 10; public void mm(); public void nn() ;示例:示例:public abstract class animal private string color;public abstract void eat();public abstract void bid();p

34、ublic animal(string color)this.color=color;class cat extends animalpublic cat(string color) super(color);public void bid() system.out.println(猫喵喵叫猫喵喵叫);public void eat() system.out.println(猫吃鱼猫吃鱼); class dog extends animalpublic dog(string color) super(color);public void bid() system.out.println(狗汪汪

35、叫狗汪汪叫);public void eat() system.out.println(狗吃肉狗吃肉);public class myself public animal pet;public static void main(string args) cat cat = new cat(yellow);myself self = new myself(cat);self.petenjoy();self.feedpet();dog dog = new dog(black);self.setpet(dog);self.petenjoy();self.feedpet();示例:示例:public

36、myself(animal pet) this.pet = pet;public void petenjoy()pet.bid();public void feedpet()pet.eat();public animal getpet() return pet;public void setpet(animal pet) this.pet = pet;容器容器collectionlistsetarraylistlinkedlisthashsettreesetmaphashmaptreemapcollection:定义了存取对象的最基本的方法定义了存取对象的最基本的方法 子接口子接口list和和

37、set分别定义了存储方式。分别定义了存储方式。 list顺序存储对象(即存储顺序同插入顺序),可插入重顺序存储对象(即存储顺序同插入顺序),可插入重复对象。复对象。 set-存储的对象没有特定顺序,不可以重复。存储的对象没有特定顺序,不可以重复。map定义了按定义了按”键键(key)值值(value)”方式成对存取数据的数据方式成对存取数据的数据结构。结构。容器容器1、collection中定义的常见方法:中定义的常见方法: int size(); boolean isempty(); void clear(); boolean contains(object element); boolea

38、n add(object element); boolean remove(object element); iterator iterator(); boolean containsall(collection c); boolean addall(collection c); boolean removeall(collection c); boolean retainall(collection c); object toarray();容器容器容器容器注:集合中元素的删除注:集合中元素的删除remove和和contains方法涉及到集合元素方法涉及到集合元素的比较,若元素为用户定义的类型,则请重写它的的比较,若元素为用户定义的类型,则请重写它的equals方法和方法和hashcode()。 请记住以下的一个原则:请记住以下的一个原则: 两个对象它们的两个对象它们的equals为为true,则它们的则它们的hashcode()方法()方法也相等。也相等。示例:示例: 迭代器:迭代器: 用于遍历集合中的所有元素,不须考虑集合的实现方式。用于遍历集合中的所有元素,不须考虑集合的实现方式。iterator接口:接口: iterator boolean hasnex

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论