《Java语言》课件第3章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《Java语言》课件第3章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java语言 Java 语言 课件
- 资源描述:
-
1、3.1 Java 的类的类3.2 对象的创建与引用对象的创建与引用3.3 变量的作用域变量的作用域 3.4 类变量和静态方法类变量和静态方法3.5 类的组织类的组织-包包3.1.1 3.1.1 系统定义的类系统定义的类 Java API-Java API-常用包常用包java.lang java.lang 包包java.io java.io 包包java.util java.util 包包java.awt java.awt 包包java.applet java.applet 包包 包包java.awt.event java.awt.event 包包java.sql java.sql 包包.使用
2、某个类必须指出类所在包的信息使用某个类必须指出类所在包的信息 通过指定绝对路径来使用类通过指定绝对路径来使用类 java.util.Date x=new java.util.Date();java.util.Date x=new java.util.Date();先通过先通过importimport引入类,然后在代码中直接访问类引入类,然后在代码中直接访问类 import java.util.Date;import java.util.Date;Date x=new Date();Date x=new Date();3.1.23.1.2 用户自定义类用户自定义类 修饰符修饰符 class cl
3、ass 类名类名 /类头类头 /类体类体 修饰修饰 类型类型 属性属性1=1=初值初值11 ;修饰修饰 类型类型 属性属性2=2=初值初值2 2;././其他属性其他属性 修饰修饰 类型类型 方法方法1 1(参数列表)(参数列表)方法体方法体 ././其他方法其他方法 例例3-1 3-1 表示人员信息的表示人员信息的PersonPerson类(未完)类(未完)public class Person /public class Person /类头、类名为类头、类名为PersonPersonprivate String address;/private String address;/籍贯籍贯p
4、rivate String name;/private String name;/姓名姓名private int age;/private int age;/年龄年龄 public String getName()/public String getName()/获取人名获取人名 return name;return name;public int getAge()/public int getAge()/获取年龄获取年龄 return age;return age;public void changeName(String new_name)/public void changeName(S
5、tring new_name)/改名改名 name=new_name;name=new_name;public void incAge()/public void incAge()/增加增加1 1岁岁 age+;age+;例例3-1 3-1 表示人员信息的表示人员信息的PersonPerson类类 (续)续)public void setAge(int new_age)/public void setAge(int new_age)/设置年龄设置年龄 age=new_age;age=new_age;public String getAddress()/public String getAddr
6、ess()/获取籍贯获取籍贯 return address;return address;public void setAddress(String x)/public void setAddress(String x)/设置籍贯设置籍贯 address=x;address=x;public String toString()public String toString()/读对象信息读对象信息 String s=Name:+name+n;String s=Name:+name+n;s+=Age:+age+n;s+=Age:+age+n;s+=Address:+address+n;s+=Add
7、ress:+address+n;return s;return s;3.2.13.2.1 创建对象及访问对象成员创建对象及访问对象成员 public static void main(String args)public static void main(String args)Person p1=new Person();/Person p1=new Person();/创建一个创建一个PersonPerson对象对象 Person p2=new Person();/Person p2=new Person();/创建另一个创建另一个PersonPerson对象对象p1.changeName
8、(John);p1.setAge(23);p1.setAddress(江西江西);(北京北京);System.out.println();p2.setAddress姓名姓名=+p1.getName()+,地址地址=+p1.getAddress();System.out.println p1.incrementAge();p2.changeName(Mary Ann);p2.setAge(22(姓名姓名=+p2.getName()+,地址地址=+p2.getAddress();3.2.23.2.2 对象的初始化和构造方法对象的初始化和构造方法 如果定义属性成员时没有指定初值,则系统自动指如果定义
9、属性成员时没有指定初值,则系统自动指定初值。定初值。在定义属性成员时也可以指定初值。在定义属性成员时也可以指定初值。public class Person public class Person private String address;/private String address;/籍贯籍贯 private String private String name=“name=“无名氏无名氏”;”;/姓名姓名 private int private int age=100age=100;/;/年龄年龄 指定初值的另一种办法是通过初始化块来指定初值的另一种办法是通过初始化块来设置对象的初值。
10、设置对象的初值。public class Person public class Person private String address;/private String address;/籍贯籍贯private String name;/private String name;/姓名姓名private int private int age=12age=12;/;/年龄年龄 /初始化代码块初始化代码块 name=name=无名氏无名氏;age=100;age=100;思考:思考:ageage的初值是什么?的初值是什么?更为常用的给对象设置初值的方式是通过构造更为常用的给对象设置初值的方式是
11、通过构造方法方法 -Person-Person类的一个构造方法类的一个构造方法 public Person(String myname,int myage)public Person(String myname,int myage)name=myname;name=myname;age=myage;age=myage;Person p3=new Person(John,20);使用该构造方法可以创建一个使用该构造方法可以创建一个Person对象对象 构造方法的特点构造方法的特点构造方法的名称必须构造方法的名称必须与类名同名与类名同名;构造方法构造方法没有返回类型没有返回类型;通常通常一个类可提
12、供多个构造方法一个类可提供多个构造方法,这些方法的参数不同。,这些方法的参数不同。如果一个类未指定构造方法,则只能使用系统自动如果一个类未指定构造方法,则只能使用系统自动提供的提供的无参构造方法无参构造方法创建对象,形式如下:创建对象,形式如下:public Person()例例3-2 Person3-2 Person类添加子女属性类添加子女属性 public class Person public class Person private String name;private String name;private int age;private int age;private priva
13、te Person childrenPerson children=null;=null;public Person(String myname,int myage)/public Person(String myname,int myage)/无子女构造方无子女构造方法法 name=myname;name=myname;age=myage;age=myage;public String toString()public String toString()String s=Name:+name+n;String s=Name:+name+n;s+=Age:+age+n;s+=Age:+age+
14、n;return s;return s;例例3-2 Person3-2 Person类添加子女属性类添加子女属性 (续(续1 1)public public Person(String name1,int age1,Person chs)Person(String name1,int age1,Person chs)/有子女构造方法有子女构造方法 name=name1;name=name1;age=age1;age=age1;children=chs;children=chs;public Person getChildren()public Person getChildren()retur
15、n children;return children;public void setChildren(Person mychildren)public void setChildren(Person mychildren)children=mychildren;children=mychildren;例例3-2 Person3-2 Person类添加子女属性类添加子女属性 (续(续2 2)public static void main(String args)public static void main(String args)Person p1=new Person(John,20);Pe
16、rson p1=new Person(John,20);Person p2=new Person(Mary,18);Person p2=new Person(Mary,18);Person c1=p1,p2;Person c1=p1,p2;Person p3=new Person p3=new Person(Smith,50,c1);Person(Smith,50,c1);System.out.println(father:+p3+have following children System.out.println(father:+p3+have following children););P
17、erson mychild=p3.getChildren();Person mychild=p3.getChildren();for(int k=0;kmychild.length;k+)for(int k=0;kmychild.length;k+)System.out.println(child+System.out.println(child+(k+1k+1)+:+mychildk);+:+mychildk);/类结束类结束不同类型变量的作用域不同类型变量的作用域 (1 1)成员变量成员变量的作用域是整个类体。的作用域是整个类体。(2 2)局部变量局部变量也称自动变量,是在方法中定义或者在
18、一段代码也称自动变量,是在方法中定义或者在一段代码块中定义的变量。在声明的代码块中有效。块中定义的变量。在声明的代码块中有效。注意,注意,局部变量在定义时系统不会赋默认初值局部变量在定义时系统不会赋默认初值,因此在引,因此在引用变量时要保证先赋值。用变量时要保证先赋值。(3 3)方法参数方法参数的作用域是整个方法。参数值由方法调用时实参的作用域是整个方法。参数值由方法调用时实参决定。决定。(4 4)异常处理参数异常处理参数跟方法参数的作用很相似,差别在是前者是跟方法参数的作用很相似,差别在是前者是传递参数给异常处理块而后者是传递给方法。传递参数给异常处理块而后者是传递给方法。例例3-3 3-3
19、 各类变量的作用域各类变量的作用域 public class Scope public class Scope int int x=2x=2;int int y=1y=1;public void method(public void method(int aint a)int int x=5x=5;for(for(int iint i =1;ia;i+)=1;ia;i+)x=x+i;x=x+i;System.out.println(x=+x+,y=+y+,a=+a);System.out.println(x=+x+,y=+y+,a=+a);public static void main(Str
20、ing a)public static void main(String a)Scope xScope x=new Scope();=new Scope();x.method(6);x.method(6);3.4.1 3.4.1 类变量类变量-类变量的访问形式类变量的访问形式在本类中直接访问:在本类中直接访问:count count 通过类名访问:通过类名访问:User.count User.count 通过类的一个对象访问,如:通过类的一个对象访问,如:x1.count x1.count 给类变量赋初值给类变量赋初值-用静态初始化代码块用静态初始化代码块 static static coun
21、t=100;count=100;理解类空间与对象空间理解类空间与对象空间public class User public class User static int count=0;static int count=0;String username;String username;int age;int age;类空间类空间对象空间张三0countx1usernameage20李四x2usernameage16大家大家共享共享一份一份每个每个对象对象有各有各自的自的【思考思考】如果将程序中的如果将程序中的countcount变量改为实例变量,变量改为实例变量,程序输出结果如何程序输出结果如何
22、?public class User public class User static int count=0;static int count=0;void login()void login()count+;count+;System.out.println(you are no+count+user);System.out.println(you are no+count+user);public static void main(String args)public static void main(String args)User x1=new User();User x1=new
展开阅读全文