重写-关于覆盖和返回的一点疑问

问题描述

关于覆盖和返回的一点疑问
public class TbShangpininfo {
private String spmc;
public String getSpmc(){
    return spmc;
}
public String toString() {
    return getSpmc();
}

}

TbShangpininfo类重写了toString()方法,
JComboBox sp=new JComboBox();
TbShangpininfo info=new TbShangpininfo();

info.setSpmc(res.getString("spmc"));
sp.addItem(info);

我想问的是对象info加到sp后是怎么变成字符串的,把toString()中的return语句详细讲解下

解决方案

有一个重载形式是addItem(object),里面调用了toString
info.setSpmc你可能忘了写了应该是
void setSpmc(String s)
{
spmc = s;
}
那么info.setSpmc(res.getString("spmc"));就将资源中的spmc放入了info的spmc成员。
而addItem调用了toString,toString调用了getSpmc,getSpmc返回了spmc,toString返回了getSpmc返回的spmc
public String toString() {
return getSpmc();
}
其实就是
public String toString() {
String result = getSpmc();
return result;
}

解决方案二:

addItem之后,当显示该下拉列表的时候会根据加入的对象类型进行初始化,此时需要根据加入的内容调取toString方法。

时间: 2024-11-18 19:34:12

重写-关于覆盖和返回的一点疑问的相关文章

C++中重载、重写(覆盖)和隐藏的区别实例分析_C 语言

本文实例讲述了C++中重载.重写(覆盖)和隐藏的区别,对于C++面向对象程序设计来说是非常重要的概念.具体分析如下: 1.重载:重载从overload翻译过来,是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型. 示例代码如下: class A{ public: void test(int i); void test(double i); void test(int i, double j); void te

C++中重载、重写(覆盖)的区别实例分析

这篇文章主要介绍了C++中重载.重写(覆盖)的区别,是C++面向对象程序设计非常重要的概念,需要的朋友可以参考下. 本文实例讲述了C++中重载.重写(覆盖)和隐藏的区别,对于C++面向对象程序设计来说是非常重要的概念.具体分析如下: 1.重载:重载从overload翻译过来,是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型. 示例代码如下: class A{ public: void test(int i)

关于javascript闭包的一点疑问

问题描述 关于javascript闭包的一点疑问 闭包存储局部变量的机理是什么?它如何存储的?比如如下一个闭包 function test(){ var num = 10; return function(){ num++; return num; }; }; var n = test(); alert(n()); //返回11 alert(n()); //返回12,实现了累加 alert(n()); //继续累加 第二次alert(n())通过闭包实现了累加,但是这个局部变量num是如何存储在

关于《javascript 高级程序设计》里“稳妥构造函数模式“的一点疑问

问题描述 关于<javascript 高级程序设计>里"稳妥构造函数模式"的一点疑问 在<javascript 高级程序设计>第六章6.2.7提到"稳妥构造函数模式"的稳妥对象,指的是没有公共属性,而且其方法也不引用this 的对象,最适合在一些安全的环境中(这些环境中会禁止使用this 和new),或者在防止数据被其他应用程序(如Mashup程序)改动时使用.书中举例如下: function Person(name, age, job){

java类加载器-关于java类加载的双亲委托机制的一点疑问

问题描述 关于java类加载的双亲委托机制的一点疑问 class Clazz2{ public static void main(String[] args) { ClassLoader classLoader = new ClassLoader() { @Override public Class<?> loadClass(String name) throws ClassNotFoundException { try { FileInputStream fileInputStream =

c语言-关于C语言指针一点疑问

问题描述 关于C语言指针一点疑问 int get_memory(char **p) { (*)p = "hello"; } int main(int argc, char argv[]) { char *str = NULL; get_memory(&str); printf("%sn", str); system("PAUSE"); return 0; } 为什么printf("%sn", str);里面str前面不

函数-关于javascript闭包的一点疑问

问题描述 关于javascript闭包的一点疑问 function create(){ var arr = new Array(); for (var i=0; i<10; i++){ arr[i] = function(num){ return function(){ return num; }; }(i);// (i)有是什么意思?} 解决方案 匿名函数的参数,可以这么理解 var f = function(num){ return function(){ return num; };};a

汇编语言-汇编MOV的一点疑问!!!

问题描述 汇编MOV的一点疑问!!! DATA SEGMENT USE16 MES1 DB 'Please input:',0AH,0DH,'$' SD DB ? DATA ENDS 然后 MOV AH,1 INT 21H MOV SD,AL 然后就对SD进行操作了 想问下MOV的目的操作数可以是变量(SD)吗??不是只能是寄存器和存储器吗? 解决方案 MOV AH,1 INT 21H 是自动转入中断子程序的入口 通过上面两条指令,会把输入或者读取的字符放到AL中,所以是MOV SD,AL 解决

string-对getBytes()的一点疑问

问题描述 对getBytes()的一点疑问 我输入的程序是这样的 byte d[]=""你我他"".getBytes(); byte b[]=""hahaha"".getBytes(); System.out.println(""数组d的长度是(一个汉字占两个字节):""+d.length+""个字节""); String s=new String