Java语言程序设计第二章.ppt

上传人:牧羊曲112 文档编号:6510224 上传时间:2023-11-07 格式:PPT 页数:36 大小:300.99KB
返回 下载 相关 举报
Java语言程序设计第二章.ppt_第1页
第1页 / 共36页
Java语言程序设计第二章.ppt_第2页
第2页 / 共36页
Java语言程序设计第二章.ppt_第3页
第3页 / 共36页
Java语言程序设计第二章.ppt_第4页
第4页 / 共36页
Java语言程序设计第二章.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《Java语言程序设计第二章.ppt》由会员分享,可在线阅读,更多相关《Java语言程序设计第二章.ppt(36页珍藏版)》请在三一办公上搜索。

1、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等。标识符:以字母、下划线或美元符($)开头,由字母、数字、下

2、划线或美元符($)组成,区分大小写。可用作变量名、方法名、接口名、类名等。注意:尽量使用有意义的英文单词进行命名,并遵守相应命名规范。,演示标识符,变量名和方法名的命名规范:第一个单词小写,后面单词首字母大写。,4,Java程序的组织形式,基本要素(续)单行注释System.out.println(“Hello!Welcome!”);/行末注释多行注释/*public void run()*/文档注释可以使用javadoc工具生成HTML API文档/*方法的功能说明*param 参数*throws 异常*/,演示生成API文档,5,Java程序的组织形式,程序结构以“类”为基础,定义一个类时

3、要使用“class”关键字。一个源文件中可包含多个类,但只能有一个是公共类,并且该公共类的名称要与文件名同名。,演示编译含有多个类的源文件,例如:源程序A.java文件中含有如下代码:public class A class B class C 编译后,生成3个字节码文件:A.class,B.class,C.class,类名的命名规范:首字母大写,6,Java程序的组织形式,包的概念包允许将类组合成较小的单元(类似文件夹)。包的作用有助于避免命名冲突。在使用类时,类的名称很难决定,有时在命名时不得以需要与其他类名同名。包机制能够在一定程度上设置其内部的类、属性和方法的对外可见度。包的创建:pa

4、ckage 包名;包的导入:import 包名.类名;,演示创建与导入包,注意包名的命名规范:全部小写,域名定义。,演示环境变量classpath,7,类与对象,万事万物皆对象。面向对象的编程(OOP)思想实质是使用计算机语言实现对事物的描述,尽可能反映出现实世界事物的本来面目。类是对一类的事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,也称实例。程序一般是依赖创建类的实例来驱动运行的。,8,类成员,类定义两方面内容:类中封装的数据,叫做属性或者成员变量;类中封装的操作数据的行为,叫做方法或者成员方法。在实际问题中,对实体类的抽象是最关键的一步,它决定了该系统是否能真实反

5、映实际业务活动。,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();a

6、cc.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),再提供一个或多个公开的(publi

7、c)方法实现对该属性的操作,以实现下述目的:隐藏一个类的实现细节;防止对封装数据的未经授权的访问。使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;有利于保证数据的完整性;便于修改,增强代码的可维护性;,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.printl

8、n(“请输入正确的年龄);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(

9、)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参数的构造方法被调用!);

10、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,

11、引用与对象,MyClass mc=new MyClass();这条语句实际上完成了三件事情:(1)声明了一个引用mc,该引用的类型为MyClass,将只能引用MyClass以及其子类的对象。(2)利用MyClass()构造方法创建了一个MyClass对象。(3)把创建的对象赋给mc引用。,mc=,this.i,0 x1001,null,0 x1001,this.show(),栈内存,堆内存,18,引用与对象this关键字,【例2.14】不同对象对引用的赋值。public class Reference private String name;public Reference(String n)

12、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;,this.name=name;,19,引用相等与对象相等的判断,【例 2.16】String对象相等的判断 public class Stri

13、ngEquals 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种访问修饰符:

14、public,private,protected,无修饰符,21,访问修饰符,演示访问修饰符,22,方法修饰符,方法修饰符为方法设置访问权限,包括:staticfinalabstract,23,方法修饰符 static,关键字static可以用于修饰变量、方法、代码块。使用static修饰的成员变量和方法,称为静态成员,也称为类成员。静态成员存储于类的存储区,属于整个类,不属于一个具体的类对象,被所有该类的对象共享。因此在不同的类对象中访问静态成员,访问的是同一个。成员声明为static后,无需创建该类的任何对象,直接通过类名称来调用就可以访问。,演示static修饰符,24,方法修饰符 st

15、atic,【例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成员变量的

16、初始化。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,方法修饰符

17、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 doubl

18、e area()return PI*this.radius*this.radius;,28,基本数据类型,一个变量的数据类型决定了变量所能容纳的数值和操作符。Java是一种强类型语言,意味着每一个变量都有一种类型且每一种类型都是经过严格定义的。C与Java基本数据类型的对比,29,基本数据类型,演示基本数据类型,30,数据类型转换,不同类型的数据进行混合运算时,首先需要转换为同一类型然后运算。自动类型转换:也称放大转换。条件:两种类型兼容,目标类型大于源类型,布尔型与其他类型不兼容。强制类型转换:也称缩小转换。条件:源类型大于其目标类型,如float值赋给int类型变量值,此时需要显式类型转换

19、,即double d=12.1int 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(myInt

20、eger.intValue();,33,操作符,演示操作符,34,操作符优先级,【例2.19】在复杂运算中,体现操作符的运算优先级。public class OperatorTest public static void main(String args)int a=1,b=2,c=3;boolean result;result=(a=1),35,变量作用域,变量可以在代码块中声明,代码块用来定义作用域,代码块以左大括号开始,以右大括号结束。,class ScopeVar public static void main(String args)int num=10;if(num=10)int

21、num1=num*num;System.out.println(“num 和 num1 的值为+num+num1);num1=10;System.out.println(“num 的值为+num);,/错误!num1 未知,/num 在内层作用域中可用,36,本节小结,Java 程序结构以“类”为单位。“包”机制能够避免命名冲突,以及保护类内部成员。类包括成员属性和成员方法的两方面描述。通过封装实现对类内部数据的保护。对象初始化与构造方法的使用。方法重载的概念。对象及引用的概念。访问修饰符的作用。static关键字修饰静态成员,可以直接用类名称调用,且只能调用其它静态成员。final关键字用来表示常量。Java数据类型与C语言的区别,数据类型转换及包装类的使用。Java操作符的使用。变量作用域的概念。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号