已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,JAVA基本语法,JAVA标识符,1、标识符: 编程语言中用来标识变量、函数、常量等的名字,就是标识符。 1-1:标识符的命名规则: a、标识符由字母、下划线、美元符号($)和数字构成。 b、标识符由字母、下划线、美元符号($)开头 c、大小写敏感 1-2:关键字: 编程语言中预留的标识符,通常在编程语言中代表某种特定的用途如:public ,class,private 注:关键字不能被程序员占用的。 2、数据类型: 2-1:基本数据类型: 数值类型: 整型:byte、short、int、long,浮点型:float 、double 其它类型: 字符型:char 布尔型:boolean 2-2 引用类型 java中所有的类都是属于引用类型。如:String,Date,JAVA标识符,1、变量: 是内存中一块区域,其大小由变量数据类型决定,程序员通过变量名来引用这块区域,并向其中读或写数据。 1-1: 定义变量的语法: 类型 变量名= 初始化值; 注:变量未初始化是不能使用的。 2、常量: 是值不可变的变量。 2-1:定义常量:final final 变量名 = 初始化值; 常用的地方是,在一个类中定义一个类常量(即定义一个类的成员为常量),变量、常量,变量、常量,public class VarTest public static void main(String args) / TODO Auto-generated method stub int 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.out.println(info2+area); static final double PI = 3.1415926; /类常量,通常为static ,数学运算符: + ,- ,* ,/,%(取模) ,+ , - - 关系运算: ,= ,!= condition ? Expression1:expression2(三元运算符) 逻辑运算符: | , & , ! 位运算符: & , | , (异或) ,(非) (右移运算符) , (右移运算符) 注:按位与&及按位或|除了位运算外还可以用于一般的逻辑运算其效果与&和|大致一致。 区别在于:&和|具备短路运算的特性而&和|没有。 Eg: 当x=0 比较 x!=0&1/xx+y 和 x!=0&1/xx+y 两个表达式的执行状态,运算符,运算符,示例,public class javademo1 public static void main() System.out.println(“这是一个最简单java程序“); ,3、书写规范: 3-1: 前面带空格.; 3-2: 要与对应的所在行首对齐; 3-3: 内的语句要相对于有一个缩进(tab或shift+tab); 3-4:子模块相对于父模块要有一个缩进; 3-5: 一般来说每条语句占一行,一行写多条语句则语句间要有空格。 3-6:一条语句过长时,可以占多行(尽量避免一行的长度超过80个字符,因为很多终端和工具不能很好处理之)。可以依据如下一般规则断开之: - 在一个逗号后面断开 - 在一个操作符前面断开 如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8 个空格。 标识符命名要符合业务意义; 以下是断开的一些例子: someMethod(longExpression1, longExpression2, longExpression3, longExpression4, longExpression5); longName1 = longName2 * (longName3 + longName4 - longName5) + 4 * longname6; /PREFFER,示例,1、数值类型之间的隐式转换: (按由左至右或箭头方向) (由宽度由窄到宽,由整数到小数) 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 stub Shape shape ; Circle circle = 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 void setColor(String color) this.color = color; class Circle extends Shape int 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、数值类型的强制转换: 一般来说,由小数到整数,或取值范围宽的类型到取值范围窄的类型都须要强制转换 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、引用类型的强制转换: 子类类型 对象 = (子类类型)父类对象 (前提:某父类型的引用变量值由子类引用变量类型转换而来,那么该父类型的引用变量可以被强转为子类型) 如:接前例:父类:Shape 子类:Circle 例1: Shape shape; .Circle cir = new Circle(); shape = cir /将子类引用变量的值类型转换后赋给父类引用变量 Circle circle2 = shape; /错误,父类不能隐式转换为子类 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(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;自增语句,) 语句; ; ,for循环例子:,while循环例子: 根据输入的固定利率和每年存入的金额及退休后所须存储目标余额,计算要多少年后退休?,数组: 常见的一种数据结构,用来顺序存储同类型的值的集合。在内存占用一段连续的内存区域。 (java中数组也是一个对象) 1、数组的声明: 数据类型 数组名; 或 数据类型 数组名=new 数据类型数组大小 ;/初始化 或 数据类型 数组名=new 值1,值2,值n ;/初始化,数组,在JDK5.0中提供了一种新的循环结构用来遍历集合中的元素非常有效,当然数组也是一种集合,故也可应用。 for(数据类型 item:collection) 语句; ,数组,面向过程: 程序设计者必须指定计算机执行的具体步骤,程序设计者不仅要考虑程序要“做什么还要解决“怎么做“的问题,根据程序要“做什么“的要求,写出一个个语句,安排好它们的执行顺序.怎样设计这些步骤,怎样保证它的正确性和具有较高的效率,这就是算法需要解决的问题. 面向对象: 首选抽象出问题领域内的相关的对象和它们的属性和行为,并找出对象之间的关系。这样当解决问题时,只须调用相关对象去完成即可。 面向对象设计实现了对象级别的封装和复用(面向过程只能实现方法级别的复用),更贴近人解决问题的思考方式,同时更易于管理,复用的程度也更高。,对象与类,对象与类,1、对象的三个主要特性: 对象的行为、对象的状态、对象的标识 2、类: 是对具有相同特征和行为的对象集合的抽象。可以还可以将之看成是生成对象的代码模块。 2-1:类的三大特征 封装:隐藏对象内部的细节,向外部提供接口,让调用者访问 继承:从已有的类扩展出一个新类,新类具备原类的所有特性,并扩展出自己新的特性 多态:对同一个消息,多种不同的响应方式 2-2:类与类之间的关系: is-a:继承 has-a:又分为聚合和组合 另外还有一种依赖关系,对象与类,2-2-1: a、聚合: 一个类包含其它类,但没有必须的依存关系。 公司-员工 足球队-队员 b、组合:一个类包含其它类,存在必须的依存关系 人-人脑 2-2-2:关联(依赖):最弱的关系,一个类在某种情况下要向其它的类发送消息。 公司的经理-考核员工 公司的经理,对象与类,3、类的构造: 3-1: 默认构造方法: 不带参数的构造方法。若未定义构造方法,则编译默认建立一个空的构造方法。 3-2:构造方法重载: 3-3: 子类构造方法中必须在第一行调用父类的构造方法,若父类有默认构造方法,则可省略调用代码,由编译隐式在子类构造方法中调用父类的默认构造方法。 注:一个.java文件夹中只能一个,4、变量分类: 4-1:基本类型变量和引用类变量 基本类型变量:存放基本类型数据的值。 引用类型变量: 存放类实例的引用。 4-2:局部变量和全局变量: 局部变量:在方法内部定义的变量称为局部变量。 全局变量:类的成员称为全局变量。 注:全局变量若没有在定义时初始化则会有一个默认初始化值。 引用类型变量初始化值为null。 基本类型变量中数值型一律初始化为0,char型初始化为 ,boolean为false,对象与类,请判断输出结果: class Number public int i; public Number(int i) this.i=i; ,对象与类,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、访问控制: 访问控制符 在类的内部 同一包内 子类 任意位置 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; protected 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: 方法重载: 同一个类中对定义多个同名方法,它们的参数类型或参数的个数不一致。 6-2:方法重写: 子类中重新定义父类的一个方法(即方法签名相同的方法。)。 限制: 不能更改被重写方法的返回类型。 不能有比被重写方法的更严格的访问控制。,对象与类,7、抽象类: 多用来描述一个抽象的通用的概念,该概念泛指一类事物,但不指向特定的对象。如:动物、人。 另外,JAVA中还常用用抽象类来给定某个接口的默认实现,这样用只须从抽象类继承,重写想要重写的方法,而不必实现所有的方法。 7-1:抽象类是用absract修饰的类。它不能被实例化,但可声明引用变量。 7-2:抽象类中可以有两种类型的成员方法: 抽象方法:用abstract修饰的方法,只有声明没有实现(只在抽象类中声明)。 普通方法:有声明有实现。 7-3:可以有成员变量(属性),请注意abstract不能修饰成员属性 7-4: 若子类若不是抽象类则必须实现所有的抽象方法。,类与对象,找出错误并改正 public abstract class Animal public abstract String color; public abstract void eat(); public abstract void bid(); class Aa extends Animal public static void main(String args) Aa aa = new Aa(); ,类与对象,关键字: super,this,static super: 父类的引用 this:当前类的引用 static :定义静态资源 包括:静态内部类、静态成员变量、静态成员方法. -静态资源是依附类的,在类加载的同时被加载,为该类所有实例所共用。可通过类名来调用,当然也可通过实例来调用。 -静态成员方法只能直接访问类中的静态资源,对象与类,8、接口: 用于定制一组操作契约,也可说是制定一个操作标准。 8-1:按接口编程思想 编写代码时尽量使用接口,不要过多涉及具体实现,这样的代码更易维护。 8-2:可将接口看成是一个特殊的抽象类: -接口内可以声明成员变量,且都为:public static final -接口内只能声明方法,不能实现任何方法。 -一个类可以同时实现多个接口,只能继承一个抽象类。 -接口的实现类必须实现接口中声明的所有方法,对象与类,看以下几段代码,选择正确的。,对象与类,A) public interface aa int id =10; public void mm(); public void nn(); B) public interface aa pubic final id ; public void mm(); public void 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(); public Animal(String color) this.color=color; class Cat extends Animal public Cat(String color) super(color); public void bid() System.out.println(“猫喵喵叫“); public void eat() System.out.println(“猫吃鱼“); ,class Dog extends Animal public Dog(String color) super(color); public void bid() System.out.println(“狗汪汪叫“); 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 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; ,容器, Collection, List, Set,ArrayList,LinkedList,HashSet,TreeSet, Map,HashMap,TreeMap,Collection:定义了存取对象的最基本的方法 子接口List和Set分别定义了存储方式。 List顺序存储对象(即存储顺序同插入顺序),可插入重复对象。 Set-存储的对象没有特定顺序,不可以重复。 Map定义了按”键(key)值(value)”方式成对存取数据的数据结构。,容器,1、Collection中定义的常见方法: int size(); boolean isEmpty(); void clear(); boolean contains(Object Element); boolean 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,则它们
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 团队活动会展策划方案(3篇)
- 智能马桶活动策划方案(3篇)
- 2026年医疗科研成果转让合同
- 企业战略研讨报告范例及撰写技巧
- 企业财务分析报告实训作业示范
- 课堂教学改革策略与方法汇编
- 主观视觉障碍的护理查房
- 体育教师招聘名词及术语解释
- 2025年农产品质量安全区块链溯源技术应用分析报告
- 2025-2030中国床垫市场营销创新策略与运营模式分析研究报告
- 洗煤厂安全规程培训课件
- 宽窄巷子剧院介绍
- 产房安全管理课件
- 现场管理提升培训
- 现场安全文明施工培训课件
- GB/T 14992-2025高温合金和金属间化合物牌号及化学成分
- 小学阶段科学探究活动课件
- 面神经炎个案护理
- 2025年陕西省公务员录用考试意大利语水平测试试卷
- 部编版《道德与法治》一年级上册上册第14课《人人爱护公物》精美课件
- 茶百道培训课件
评论
0/150
提交评论