JAVA编程基础(六) 在Java类中添加方法

学习访问器(存取(getter、setter))方法的声明使用和方法调用

更多精彩请阅读 东陆之滇的csdn博客:http://blog.csdn.net/zixiao217

本节学习目标

  • 学会编写使用访问器(存取(getter、setter))方法
  • 学会正确调用无参的或者有参的方法
  • 学会嵌套调用方法

访问器方法

第五节中展示的getter、setter方法我们也叫访问器方法(迅速温故:getter方法是返回指定属性值的的方法,setter方法是可以设置(修改)指定属性的方法)。封装一个类的实例对象的数据,你需要声明其属性变量为private,然后提供访问器方法。

访问器方法的命名严格遵守JavaBean模式。在这种模式下的一个示例:属性foo有一个getter方法为getFoo(),有一个setter方法为setFoo()。JavaBeans模式是很常见的,Eclipse IDE支持内建,你可以自动生成getter、setter方法,具体步骤可以回顾第五节的内容。

访问器的一些参考:

  • 属性纵使使用private访问控制修饰符修饰
  • getter、setter通常使用public修饰
  • getterXX方法没有参数,它返回该类型对象的指定属性XX的值
  • setter方法有一个参数值为该属性的值,无返回值

声明访问器方法

到目前为止,最简单的方法生成getter、setter方法可以使用Eclipse。但是你也应该知道如何手动编写getter、setter方法。

假设有一个属性foo,类型是java.lang.String。关于foo属性的完整的访问器方法:

private String foo;
public String getFoo() {
  return foo;
}
public void setFoo(String value) {
  foo = value;
}

调用方法

方法的调用时很简单的,第五节的测试用例中已经展示了调用getter方法获得对应的属性值了。

无参方法的调用

调用一个对象的方法,你需要引用这个对象。方法的调用包含:

  • 对象的引用
  • 点符.
  • 方法名
  • 需要传入的参数

无参方法调用的语法:

objectReference.someMethod();

这是一个示例:

Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");
p.getName();

含参方法的调用:

objectReference.someOtherMethod(parameter1, parameter2, . . ., parameterN);

这是一个示例(设置name属性值):

Person p = new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");
p.setName("Jane Q Author");

我们还记得,构造器也是方法。调用方法时,你可以用空格和换行符分隔参数。下面两种方式是一样的:

/*方式一*/
new Person("Joe Q Author", 42, 173, 82, "Brown", "MALE");

/*方式二*/
new Person("Joe Q Author",// Name
  42,     // Age
  173,    // Height in cm
  82,     // Weight in kg
  "Brown",// Eye Color
  "MALE");// Gender

注意上面的注释,可以让之后接手项目的人容易看懂。一看,开发人员就可以知道每个参数是什么。

嵌套方法的调用

方法可以嵌套调用:

Logger l = Logger.getLogger(Person.class.getName());
l.info("Name: " + p.getName());

这里,通过Person.class.getName()的返回值作为调用 getLogger()的参数。还记得,getLogger是静态方法的调用,使用类名调用,和对象方法稍有不同。

测测你学到多少

1.关于JavaBean模式的最好描述是?
    a.它是你编写任何java程序都需要遵守的规范.
    b.这是一种特别的方式,关于如何声明,访问,和设定一个java对象的属性值
    c.JavaBean模式无法再编码中使用,它只存在理想条件中.
    d.以上说法均不对

2.invoking一个方法 and calling一个方法的区别?
    a.Invoking是使用关键字static调用. Calling方法仅仅针对实例对象的方法.
    b.Calling一个方法意味着彻底记录它, invoking只在源码层面调用.
    c.没什么区别,都是执行一个方法
    d.区别只在Python或者Ruby语言中.
    e.以上说法均不对

3.构造器不是方法
    a.视编译器而定
    b.错
    c.有时候是,只是构造器不能有参数
    d.对

4.**编程题**:实现Person的toString()方法. 并且将该代码在第5个问题中使用. 使用Javadoc描述toString()方法。

5.**编程题**: 编写一个单元测试用例用来测试第4个问题中你编写的toStirng()方法. 将你的测试方法添加到上一节中的PersonTest中去。.

答案见下一节。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java经典编程源码例程,可以做为你的学习设计参考。 第1章 Java语言概述 1 实例001 输出“Hello World” 2 实例002 输出控制台传递的参数 2 实例003 输出由“*”组成的三角形 3 实例004 输出符号表情 5 第2章 Eclipse开发工具 6 实例005 下载并运行Eclipse工具 7 实例006 为Eclipse安装文包 8 实例007 使用Eclipse注释代码 10 实例008 使用Eclipse格式化代码 11 实例009 安装WindowBuilder插件 12 实例010 开发计算器界面 14 第3章 Java语言基础 15 实例011 输出错误信息与调试信息 16 实例012 从控制台接收输入字符 16 实例013 重定向输出流实现程序日志 17 实例014 自动型转换与强制型转换 19 实例015 加密可以这样简单(位运算) 20 实例016 用三元运算符判断奇数和偶数 21 实例017 不用乘法运算符实现2×16 22 实例018 实现两个变量的互换 (不借助第3个变量) 23 第4章 流程控制 25 实例019 判断某一年是否为闰年 26 实例020 验证登录信息的合法性 27 实例021 为新员工分配部门 28 实例022 用switch语句根据消费 金额计算折扣 29 实例023 判断用户输入月份的季节 31 实例024 使用while循环语句与自增 运算符循环遍历数组 33 实例025 使用for循环输出杨辉三角形 34 实例026 使用嵌套循环在控制台上 输出九九乘法表 35 实例027 使用while循环计算1+ 1/2!+1/3!…1/20! 36 实例028 使用for循环输出空心的菱形 38 实例029 终止循环体 39 实例030 循环体的过滤器 41 第5章 数组及其常用操作 43 实例031 获取一维数组的最小值 44 实例032 将二维数组的行列互换 45 实例033 利用数组随机抽取幸运观众 47 实例034 用数组设置JTable表格的 列名与列宽 49 实例035 使用按钮控件数组实现 计算器界面 51 实例036 通过复选框控件数组实现 添加多个复选框控件 52 实例037 使用选择排序法对数组排序 53 实例038 使用冒泡排序法对数组排序 55 实例039 使用快速排序法对数组排序 57 实例040 使用直接插入法对数组排序 59 实例041 使用sort()方法对数组排序 61 实例042 反转数组元素的顺序 63 第6章 面向对象入门 65 实例043 自定义图书 66 实例044 温度单位转换工具 67 实例045 成员变量的默认初始化值 68 实例046 单例模式的应用 69 实例047 汉诺塔问题求解 70 实例048 编写同名的方法 71 实例049 构造方法的应用 72 实例050 统计图书的销售量 73 实例051 两只完全相同的宠物 74 实例052 重新计算对象的哈希码 76 实例053 使用字符串输出对象 77 实例054 Java对象的假克隆 78 实例055 Java对象的浅克隆 80 实例056 Java对象的深克隆 82 实例057 序列化与对象克隆 84 实例058 深克隆效率的比较 87 第7章 面向对象进阶 89 实例059 经理与员工的差异 90 实例060 重写父类中方法 92 实例061 计算几何图形的面积 93 实例062 简单的汽车销售商场 95 实例063 使用Comparable接口自定 义排序 96 实例064 策略模式的简单应用 98 实例065 适配器模式的简单应用 100 实例066 普通内部的简单应用 102 实例067 局部内部的简单应用 103 实例068 匿名内部的简单应用 104 实例069 静态内部的简单应用 105 实例070 实例化Class的几种方式 107 实例071 查看的声明 108 实例072 查看的成员 110 实例073 查看内部信息 112 实例074 动态设置的私有域 113 实例075 动态调用类中方法 115 实例076 动态实例化 116 实例077 创建长度可变的数组 117 实例078 利用反射重写toString()方法 119 第8章 字符串与包装 121 实例079 将数字格式化为货币字符串 122 实例080 货币金额大写格式 123 实例081 String格式化当前日期 125 实例082 字符串大小写转换 1

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值