Java学习资料,ppt,复习资料(6)

2020-02-21 21:00

10 public void introduction() {

11 System.out.println(\我的名字叫\12

System.out.println(\我的年龄是\岁\

13 }

14 public void eat() { 15

System.out.println(\每个人都要吃饭\

16 } 17 }

18 // 测试类,可以和Person类写在一个文件中,文件名和public类同名 19 class PersonTest {

20 public static void main(String args[]) { 21

Person p1 = new Person(\创建对象的同时,初始化 22 Person p2 = new Person(\

23 System.out.println(\24 System.out.println(p2.name + \25 p1.introduction(); 26 p2.eat();

27 } 28 }

保存程序为Person.java,编译后,运行PersonTest.class文件,程序运行结果为: p1's name is Jack.Steven is 21 years old.我的名字叫Jack。我的年龄是18岁。每个人都要吃饭

1.构造方法的名字与包含它的类相同,在语法上类似于一个方法。构造方法没有返回值,甚至连void修饰符都没有(因为它只是用来创建对象)。

作用:实现对象在实例化时的初始化(当对象在实例化时将自动地调用构造函数,实现对其成员数据赋初值)。如下列代码:

Rectangle rectA=new Rectangle();//对象在实例化时未初始化其属性 Rectangle rectA=new Rectangle(10,10,200,200);//对象在实例化时初始化其属性

2. 构造函数的可能形式

类中未定义出构造函数时,此时系统中会生成一个缺省形式的构造函数(函数体为空),对象在实例化时将不能进行初始化;

重载形式(定义出多个同名的构造函数时),从而可以在对象实例化时以多种方式初始化它,在讲解多态时给出例子。 3.this关键字的使用。

当方法内部定义的局部变量和成员变量同名时,如果要调用成员变量,就要用this。没有同名的状况发生就不需要用this。

完善Person类——带get和set方法(封装)

? 步骤1:在8.1Person类中修改属性为私有的,增加set和get方法 1 public class Person 2 {

3 private String name; // 定义人的姓名为私有的

4 private int age; // 定义人的年龄为私有的 5 // 类的构造方法,用于初始化成员变量 6 Person (String name,int age){ 7 this.name= name; 8

this.age= age;

9 }

a) public String getName() {

10 return name; 12 }

13 public void setName(String name) { 14 this.name = name; 15 }

16 public int getAge() { 17 return age; 18 }

19 public void setAge(int age) {

20 // setAge()方法采取了保护措施,用户调用该方法时对年龄验证不会出现年龄为负数的情况 21 if(age<0){

22 System.out.println(\错误!年龄不能为负数!\23 }

24 else{ this.age = age;} 25 }

26 public void introduction () // 定义introduction ()方法 27 {// 略,与原代码一致 }

28 public void eat() // 定义eat ()方法 29 {// 略,与原代码一致 } 30 }

步骤2:在代码8.2中修改第7和8行代码

P1.setName(“Jack “); //测试类中通过调用setter方法,为对象的各个属性赋值 P1.setAge(18);

封装的概念

封装(encapsulation),即信息隐藏,封装的目的有: ? 隐藏类的实现细节,以防别人误用。 ? 迫使用户通过接口去访问数据。 ? 增强代码的可维护性。

使用get和set方法封装私有数据

? get和set方法一般是用来给类的成员变量赋值的,set表示设臵值,get表示获取值。由于类的成员变量一般会声明为private的,其他类是不能直接访问成员变量的,所以为了在类以外给该类的成员变量赋值或者取值,只有用声明为public的setXxx()和getXxx()方法来实现,这些方法可以对参数的数值进行安全检查。如果编写了一个原型类,又按照这种封装类的要求把它封装好了,这样的类就叫做Java的组件,即JavaBean。

? 3. 注意:setXxx()和getXxx()方法要按照规定命名,不能随意编写。方法前半部分必须是get

或set,后半部分是属性名,属性名首字母必须要大写。4.在MyEclipse中自动生成get和set方法在MyEclipse中先定义好字段后,在要写get和set方法的位臵单击鼠标右键,打开快捷菜单,选择?Source”——” Generate Getters and Setters”选项,可以根据选择自动生成这些方法。

? 自动统计人数(类成员)

1 public class Person_s { 2 3

private String name; // 实例变量,私有的 private int age; // 实例变量,私有的

4 static int count = 0; // 类变量 5 Person_s(String n, int a) { 6 7 8

name = n;

age = ((a > 0) & (a < 150)) ? a : 0; count++;

9 }

10 public static void print_count() // 类方法,只能访问类变量 11 { 12

System.out.println(\ \

13 } 14 15 16 17

public void print() // 实例方法 { // 可以访问类变量和实例变量 print_count(); // 调用类方法

System.out.println(name + \

18 } 19

public void finalize() // 析构方法

20 { 21

count--;

22 } 23 }

24 class Person_sTest {

25 public static void main(String args[]) { 26 Person_s p1 = new Person_s(\27 p1.print_count(); // 通过对象调用类方法 28 p1.print(); // 通过对象调用实例方法 29 Person_s p2 = new Person_s(\30

p2.print();

31 System.out.println(\共有 \个对象.\32

p1.finalize(); // 调用对象的析构方法

33 System.out.println(\调用析构方法后还有 \个对象.\


Java学习资料,ppt,复习资料(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《信息技术及其发展趋势》 教学设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: