




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,Java面向对象程序设计,第2章 Java程序语言基础,2,本章主要内容,熟悉Java程序的组织形式 理解类、对象与成员的概念 掌握对象的创建与引用 熟悉访问修饰符和方法修饰符的使用 掌握Java支持的数据类型与操作符,3,Java程序的组织形式,基本要素 保留字:也叫关键字,有特定意义和用途,不能随意使用。 class、 interface、 void、int、double、protected、 public、 private、 static、final、abstract、extends、implements、if、for、while、switch等。 标识符:以字母、下划线或美元符($)开头,由字母、数字、下划线或美元符($)组成,区分大小写。可用作变量名、方法名、接口名、类名等。 注意:尽量使用有意义的英文单词进行命名,并遵守相应命名规范。,演示标识符,变量名和方法名的命名规范:第一个单词小写,后面单词首字母大写。,4,Java程序的组织形式,基本要素(续) 单行注释 System.out.println(“Hello!Welcome!”); /行末注释 多行注释 /* public void run ( ) */ 文档注释 可以使用javadoc工具生成HTML API文档 /* * 方法的功能说明 * param 参数 * throws 异常 */,演示生成API文档,5,Java程序的组织形式,程序结构以“类”为基础,定义一个类时要使用“class”关键字。 一个源文件中可包含多个类,但只能有一个是公共类,并且该公共类的名称要与文件名同名。,演示编译含有多个类的源文件,例如:源程序A.java文件中含有如下代码: public class A class B class C 编译后,生成3个字节码文件:A.class,B.class,C.class,类名的命名规范:首字母大写,6,Java程序的组织形式,包的概念 包允许将类组合成较小的单元(类似文件夹)。 包的作用 有助于避免命名冲突。在使用类时,类的名称很难决定,有时在命名时不得以需要与其他类名同名。 包机制能够在一定程度上设置其内部的类、属性和方法的对外可见度。 包的创建:package 包名; 包的导入:import 包名.类名;,演示创建与导入包,注意包名的命名规范:全部小写,域名定义。,演示环境变量classpath,7,类与对象,万事万物皆对象。 面向对象的编程(OOP)思想实质是使用计算机语言实现对事物的描述,尽可能反映出现实世界事物的本来面目。 类是对一类的事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,也称实例。 程序一般是依赖创建类的实例来驱动运行的。,8,类成员,类定义两方面内容: 类中封装的数据,叫做属性或者成员变量; 类中封装的操作数据的行为,叫做方法或者成员方法。 在实际问题中,对实体类的抽象是最关键的一步,它决定了该系统是否能真实反映实际业务活动。,9,类成员,【例2.3】创建一个计数器类,封装计数数据及其各种操作方法。 public class Accumulator private int data; /private表示封装data属性,防止外界修改 public void add( ) /计数器计数 data +; public void reset( ) /计数器清0 data = 0; public int getData( ) /返回计数器结果 return data; ,pubic static void main(String args) Accumulator acc = new Accumulator( ); acc.reset( ); acc.add( ); acc.add( ); System.out.println(acc.getData( ); ,10,信息的封装,封装是对对象的一种保护机制,使得它的属性或方法不被外部的程序直接访问。 直接操作类内部定义的属性,会导致数据的错误、混乱或安全性问题。例如: public class Student public int age; public static void main(String args) Student stu = new Student(); stu.age = 1000; /不合理的设置 ,11,信息的封装,通过将数据封装、声明为私有的(private),再提供一个或多个公开的(public)方法实现对该属性的操作,以实现下述目的: 隐藏一个类的实现细节; 防止对封装数据的未经授权的访问。使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作; 有利于保证数据的完整性; 便于修改,增强代码的可维护性;,12,信息的封装,public class Student private int age; public int getAge() return age; public void setAge(int vAge) age = vAge; ,public void setAge(int vAge) if(vAge 200 | vAge 0) System.out.println(“请输入正确的年龄“); else age = vAge; ,13,对象的初始化与构造方法,构造方法是类中特殊的方法,该方法的作用是在对象实例化过程中,帮助完成对象的初始化工作。例如: MyClass mc = new MyClass( ); new关键字表示创建对象,同时调用构造方法MyClass( )。 构造方法是在类中定义的,并在对象被创建时所调用的方法,该方法的名称与类名相同,不需要指定返回值,也不需要使用return返回。,14,对象的初始化与构造方法,【例2.9】使用new关键字实例化对象。 public class MyClass private int i = 100; public void show( ) System.out.println(i); public static void main(String args) MyClass mc = new MyClass( ); mc.show( ); ,public class MyClass /编译器自动提供的默认的无参构造方法 MyClass( ) ,15,无参与有参构造方法,【例2.10】调用无参与有参的构造方法。 public class Constructor Constructor( ) System.out.println(“无参构造方法被调用!“); Constructor(int n) System.out.println(“int参数的构造方法被调用!“); Constructor(String message) System.out.println(“String参数的构造方法被调用!“); ,public static void main(String args) ConstructorPara cp1 = new ConstructorPara( ); ConstructorPara cp2 = new ConstructorPara(12); ConstructorPara cp3 = new ConstructorPara(“Hello“); ,16,方法重载,发生在同一个类中 方法名称相同 参数列表不同 返回类型可以相同或不同 构造方法或成员方法均可发生重载【例2.4】,17,引用与对象,MyClass mc = new MyClass( ); 这条语句实际上完成了三件事情: (1)声明了一个引用mc,该引用的类型为MyClass,将只能引用MyClass以及其子类的对象。 (2)利用MyClass( )构造方法创建了一个MyClass对象。 (3)把创建的对象赋给mc引用。,mc=,this.i,0x1001,null,0x1001,this.show(),栈内存,堆内存,18,引用与对象this关键字,【例2.14】不同对象对引用的赋值。 public class Reference private String name; public Reference(String n) name = n; public void showName( ) System.out.println(name); ,public static void main(String args) Reference r1 = new Reference(“r1“); Reference r2 = new Reference(“r2“); r1.showName( ); r1 = r2; r1.showName( ); ,public Reference(String name) ,name = name;, = name;,19,引用相等与对象相等的判断,【例 2.16】String对象相等的判断 public class StringEquals public static void main(String args) String s1 = “Hello world“; String s2 = “Hello world“; String s3 = new String(“Hello world“); System.out.println(s1 = s2); System.out.println(s1 = s3); System.out.println(s1.equals(s3); ,20,访问修饰符,访问修饰符的作用是说明被声明的内容(类、属性、方法)的访问权限。 通过访问修饰符把类中将被其他类调用的内容开放出来,而把不希望别人调用的内容隐藏起来。 4种访问修饰符: public,private,protected,无修饰符,21,访问修饰符,演示访问修饰符,22,方法修饰符,方法修饰符为方法设置访问权限,包括: static final abstract,23,方法修饰符 static,关键字static可以用于修饰变量、方法、代码块。 使用static修饰的成员变量和方法,称为静态成员,也称为类成员。静态成员存储于类的存储区,属于整个类,不属于一个具体的类对象,被所有该类的对象共享。因此在不同的类对象中访问静态成员,访问的是同一个。 成员声明为static后,无需创建该类的任何对象,直接通过类名称来调用就可以访问。,演示static修饰符,24,方法修饰符 static,【例2.7】用static修饰变量、方法、代码块的综合应用。 public class StaticSample static int x = 3; static int y; static void display( ) System.out.println(“x = “ + x); System.out.println(“y = “ + y); static System.out.println(“static block“); y = x + 2; ,pubic static void main(String args) StaticSample.display( ); ,25,方法修饰符 static,【例2.11】static成员变量的初始化。 class ClassStatic public static int i = staticInitMethod( ); public static int staticInitMethod( ) System.out.println(“static成员变量被初始化“); return 12; ,pubic static void main(String args) System.out.println(“访问static成员变量i“); int a = ClassStatic.i; System.out.println(“创建对象“); ClassStatic si = new ClassStatic( ); ,26,方法修饰符 final,用final修饰的类不能被继承。 用final修饰的变量,值不能被修改,即为常量。 用final修饰的方法不能被重写。 如果对象已申明为final,对该对象的引用则不能更改,但它的属性值可以更改。,常量的命名规范:所有字母均大写。,27,方法修饰符 final,【例2.8】用final修饰常量PI,实现计算圆的面积。 public class Circle private final double PI = 3.14; private double radius; public void setRadius(double radius) this.radius = radius; public double area( ) return PI * this.radius * this.radius; ,28,基本数据类型,一个变量的数据类型决定了变量所能容纳的数值和操作符。 Java是一种强类型语言,意味着每一个变量都有一种类型且每一种类型都是经过严格定义的。 C与Java基本数据类型的对比,29,基本数据类型,演示基本数据类型,30,数据类型转换,不同类型的数据进行混合运算时,首先需要转换为同一类型然后运算。 自动类型转换:也称放大转换。 条件:两种类型兼容,目标类型大于源类型,布尔型与其他类型不兼容。 强制类型转换:也称缩小转换。 条件:源类型大于其目标类型,如float值赋给int类型变量值,此时需要显式类型转换,即 double d = 12.1 int i = (int)d;,演示数据类型转换,31,包装类,为了能将基本类型视为对象来处理,并能连接相关的方法,Java为每个基本数据类型都提供了包装类。java.lang包中提供了每个基本数据类型对应的包装类。,演示包装类JDK1.5新特性,32,包装类,【例2.18】实现基本数据类型和包装类之间的转换。 public class Convert public static void main(String args) int myInt = 12; Integer myInteger = new Integer (myInt); System.out.println(myIValue( ); ,33,操作符,演示操作符,34,操作符优先级,【例2.19
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建生物工程职业技术学院《传播伦理与法规》2023-2024学年第二学期期末试卷
- 甘肃财贸职业学院《Python程序设计实验》2023-2024学年第二学期期末试卷
- 云南医药健康职业学院《组织战略与行为学》2023-2024学年第二学期期末试卷
- 山西医科大学晋祠学院《电路分析基础实验》2023-2024学年第二学期期末试卷
- 北海康养职业学院《舞台表演基础》2023-2024学年第二学期期末试卷
- 2024年汽车座套项目资金需求报告代可行性研究报告
- 糖尿病饮食健康教育
- 2025年贵州六枝经济开发区溢鑫投资开发有限公司招聘笔试参考题库含答案解析
- 2025年云南玉溪市市政开发建设有限公司招聘笔试参考题库附带答案详解
- 2025年安徽省六安东城经济建设有限公司招聘笔试参考题库附带答案详解
- 山东省2024年中考生物试卷七套合卷【附答案】
- 医学影像检查技术学智慧树知到答案2024年浙江中医药大学
- 2024年福建厦门市海沧区市场监督管理局招聘食品药品协管员18人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 《一元二次方程》复习2省公开课获奖课件说课比赛一等奖课件
- 国开(天津)基层安全与教育策划与实施形考1-2试题及答案
- 2024年下半年教师资格考试初中思想品德面试试题及解答
- 【《长虹美菱基于EVA的业绩评价的案例分析》9800字】
- 2024年03月安徽合肥市第二人民医院招考聘用工作人员79人笔试近年2018-2023典型考题及考点剖析附答案带详解
- 康复医学康复治疗技术含内容模板
- 【N600MW发电机组改供热探析17000字(论文)】
- 【应收账款管理问题及完善策略:以S建工集团公司为例9800字(论文)】
评论
0/150
提交评论