求助,java基础问题。

public class class1{
private String Name;
public void giveName() {
Name="111aChen Hoo";
}
public String getName() {
return Name;
}
}

public class class2 extends class1{
        public static void main(String args[]) {
        class1 c = new class1();
        System.out.println(c.getName());
    }

}

我预期得到的结果是111aChen Hoo,可是控制台输出的是null,不知道哪里错了,求指导,谢谢大家。

30个回答

你的class1没有构造函数,所以是调用的默认的构造函数,Name值为null,后面你直接输出了c.getName() ,当然会输出null,因为你根本没有调用c.giveName()

oschina_40633791
flashdoggy 此楼说的是对的,顺带补充一点更容易理解就是。你那个giveName方法确实是给Name赋值的,但是你只是在那个class1里声明了这么个方法。new class1并不代表会执行里面的所有方法,所以想让你通过giveName方法实现赋值给Name,创建了class1对象以后,还得运行一下giveName给你的对象c才可以。另外想说的就是注意一下命名规则,最好一开始就养成习惯。Class所有首字母大写,方法及对象名最好用小写,下划线,美元符号开头。
接近 2 年之前 回复

giveName()函数没有被调用,所以Name没有被实例化,在class1 c = new class1();后面再写一句代码c.giveName();就可以了。

public class class2 extends class1{
public static void main(String args[]) {
class1 c = new class1();
c.giveName();
System.out.println(c.getName());
}
你并没有调用giveName(),Name只是声明了并没有赋值,所以系统默认赋null

一般写一个set方法 给变量赋值this.name=
一个get方法 return this.name

先赋值再取值 就不为空(null)了

你设置的属性是私有,这样你就得提供该set和get方法,而你只提供了一个get方法

集体回复,我明白了,谢谢你们

没调用赋值的方法(凑字..........................................)

你没有调用giveName()方法,意味着你只是创建了一个name变量,并没有对他进行初始化赋值,自然而然,你通过getName方法进行求值,并不能获得你所想要的值,也就是返回了null

你没有调用giveName()方法,意味着你只是创建了一个name变量,并没有对他进行初始化赋值,自然而然,你通过getName方法进行求值,并不能获得你所想要的值,也就是返回了null

先调用giveName()再调用getName()就ok

共30条数据 1 3 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求助、、求助、、java基础问题
我是一个才学java几个星期的学生:rn现在遇到一个很严重的问题啊!请各位大侠看看下面的:rnrnrnD:\使用java\assign1>javac Guess.javarnjavac: 找不到文件: Guess.javarn用法: javac rn-help 用于列出可能的选项rn这是我用c盘符打的。我的文件就是放在这个路径啊!这个路径中有很多.java文件啊!唯独这个文件显示找不到文件、、、rn很急、、、
求助,JAVA基础问题
程序如下rnpublic class testrnrn int count=9;rn public static void main (String[] args)rn rn new test().change();rn new test().change1();rn //test t=new test();rn //t.change();rn //t.change1();rn rn rn public void change()rn rn count=10;rn System.out.println(count); rn rn public void change1()rn rn rn System.out.println(count); rn rnrnrn程序运行结果:10,9rn如果把注释放开,把两个new注释掉,也就是只new出一个对象t来,然后用t去调用两个方法,那么结果就是10,10rn为什么呢?小弟不解的是,这种在方法中将属性值重新赋值的方法,到底有没有改变本身属性的值?
Java基础问题,求助
为什么我在DOC下可以编译成CLASS文件,但不能运行呢?(程序绝对没有错误)rn显示的是Exception in thread "main"java.lang.NoClassDefFoundError:HelloWorldrn我网上查这种问题一般是由于把类名输错了,但是我没有。rn不过是这样的,我在设置Path 环境变量后(没设置classpath之前)我运行成功了,但是设置了classpath环境变量(按照书上的做法应该没有错)后在编译执行此程序能生成class文件,但不能执行了(报上述错误)。希望能帮我解决问题。rnrn
java基础问题(求助)。。
import java.io.*;rnpublic class TestRandomrnrn public static double []data;rn public static double fileLength;rn public static void getRandomNum()rn rn int i;rn tryrn rn System.out.println("请输入一个整数n:");rn BufferedReader f=new BufferedReader(new InputStreamReader(System.in));rn i=mb_getInt(f);rn //System.out.println(i);rn File file=new File("out.txt");rn RandomAccessFile dfin=new RandomAccessFile(file,"rw");rn double num;rn //dfout.writeInt('0'+i);rn //int length;rn dfin.writeDouble(i*8+8); rn for(int j=0;j
java基础问题求助
如何把二进制的数转换成十六进制的asciirnrn比如下面的二进制rn71 73 70 56 57 97 115 0 28 0 -60 0 0 -25 121 25rn转换成rn47 49 46 38 39 61 73 00 1C 00 C4 00 00 E7 79 19rnrnjava中有没有什么方法吗?rnrn或者谁可以告诉我对应关系啊?rn最好能给个例子。rnrn能解决的100分。
求助Java基础问题
各位大哥,小弟新学Symbian上的Java编程,照着视频做的,源码如下。可以在屏幕上打出字"Thanks for your help.",但是无法画出图片ufo3.png。请问这是为何呢?rn[code=Java]rnimport javax.microedition.midlet.MIDlet;rnimport javax.microedition.midlet.MIDletStateChangeException;rnimport javax.microedition.lcdui.*;rnrnpublic class midlet extends MIDlet rnrn public midlet() rnrn protected void destroyApp(boolean arg0) throws MIDletStateChangeException rnrn protected void pauseApp() rnrn protected void startApp() throws MIDletStateChangeException rn //把MyCanvas放到手机屏幕上。rn Display.getDisplay(this).setCurrent(new MyCanvas()); rn rnrnrnrnrnrnclass MyCanvas extends Canvasrnrnrnrn //Image background=null; //声明图像。此处有待解决问题,视频中background*nullrn Image ufo=null;rn //Image airplane=null;rnrn rn MyCanvas()rn rn tryrn rn //background=Image.createImage("/bomb.png"); //加载图像rn ufo= Image.createImage("/ufo3.png");rn rn catch(Exception e)rn rn e.printStackTrace();rn rn rn rn protected void paint(Graphics graphic) rn rn graphic.drawString("Thanks for your help..", 0, 0, 0); rn //graphic.drawImage(background, 20, 20, 0); //画图rn graphic.drawImage(ufo, 0, 0, 0); rn rn rnrnrn[/code]
额,java基础问题求助
rn System.out.print(‘a'.equals(‘a') );rnrn 上面这句代码报错,是否说明java中不允许用字符的字面值表示一个字符对象?rn rn 那下面这句代码为什么是对的,equals method中的参数类型不是Character吗?rn 参数可以用一个字符字面值表示一个字符对象?rn rn System.out.print( new Character(‘a').equals(‘a') );rn rn rnrn
求助 一个java基础问题
[code=Java]rnrnpublic class Testrn public static void main(String[] args)rn Integer a = 100 ;rn Integer b = 100 ;rn rn Integer a2 = 200;rn Integer b2 = 200;rn rn rn System.out.println (a==b);rn rn System.out.println (a2==b2);rn rnrnrn[/code]rnrn输出的结果是true ,false 不知道为什么
求助:java的基础问题!! thanks!!!!!!!!!!!
我从数据库中读出几条记录值出来,这几条记录值都是由0/1组成的字符串,我现在要得到它们按位与的结果,请问应该怎么写?rn例如:取出三条记录为 str1="101011"rn str2="000101"rn str3="101001"rnrn 我应该得到的结果str="000001";rn
Java 非常简单的基础问题!求助!
[code=Java]public class A rnrn int a1 = 10;rn rn public void Set1()rn a1 = a1++;rn rn rn public static void main(String[] args) rn Set1();rn System.out.println(a1);rn rnrn[/code]rn目的:我想让a1的值改变一下,然后打印出来。rnIDE 告诉我需要声明为 static 的变量和方法 ?rn请问:1、如果我不将它们声明为 static ,如何达到目的?rnrn以下我声明了 static 变量 和 方法rn[code=Java]public class A rnrn static int a1 = 10;rn rn public static void Set1()rn a1 = a1++;rn rn rn public static void main(String[] args) rn Set1();rn System.out.println(a1);rn rnrnrn[/code]rnrn请问:2、为什么打印出来的值还是 10rn
求助!关于java基础
问一个小问题,就是在java类这一章节里,调用一个方法,有两种形式:rn实例方法:对象名.方法名rn类方法:类名.方法名rn但是经常也会看到没有static关键字声明的实例方法也被这样调用:rn类名.方法名rn请问这对不对?是不是java里边允许这样调用?
java基础题目求助
[b]queston 1[/b]rn1.public class test (rn2. public static void main (String args[]) rn3. int i = 0xFFFFFFF1;rn4. int j = ~i;rn5.rn6. rn7. )rnWhat is the decimal value of j at line 5?rnA. 0rnB. 1rnC. 14rnD. –15rn[b]question 2[/b]rnInteger i = new Integer (42);rnsystem.out.println(i.equals(42));rn输出____?
Java最最基础的问题,在线求助
我没有配置classpath,只是在path里面加入了jdk路径和jdk bin的路径,但是为什么,我在任何地方都可以使用java test命令来运行程序,按照理论来说,不是只有在classpath中的用户类才会被搜索吗?真的求助!
新人求助 关于JAVA的基础问题
刚开始学习JAVA 想请教一下![图片说明](https://img-ask.csdn.net/upload/201605/06/1462534157_926447.png)这里面的!X表示的是什么?是X=false吗?
【求助】JAVA基础的一个小问题
在工程下新建与库同包同名的类貌似是允许的,比如新建一个java.lang的包,下建一个叫String的类,然后工程下所有引用String的地方都指向自建的这个String了.rn编译是优先在source文件夹里找然后再去java build path里找么?rn还有办法引用JDK里的那个String么?rnrn另:不同source文件夹里同包同名类貌似会出错,不知道不同jar里出现同包同名类能不能导入到同一工程.
基础链表问题求助
程序要求是读入一串字符串(比如"this is a linked list program")和一个整数(比如12),把字符串前12位字符放到字符串的最后面(程序输出"nked list programthis is a li"rnrn编译后提示“main.c:55: error: request for member `next' in something not a structure or union”不知道是什么意思?如何修改这个程序?请各位高人指点rnrn代码:rnrn[code=C/C++]rn#includern#includern#includernrn#define STR_SIZE 100rnrnstruct nodern char data;rn struct node *next;rn;rnrnvoid getString(void);rnvoid creatLinkedList(struct node *head);rnvoid printInPutStr(struct node *head);rnint getNumber(void);rnvoid replaceNode(int inPut, struct node *head);rnvoid printOutPutStr(struct node *head);rnvoid printStr(struct node *head);rnvoid validateLinkedList(struct node *head);rnrnchar inPutStr[STR_SIZE];rnint number;rnrnint main(void)rn int indexNumber;// holds value of index entered by userrn struct node *head = NULL;// holds stringrnrn getString();rn head = (struct node*) calloc(1, sizeof (struct node));rn creatLinkedList(head);rn printInPutStr(head);rn indexNumber = getNumber();rn replaceNode(indexNumber, head);rn printOutPutStr(head);rn fflush(stdin);rnrnrnvoid getString(void)rn printf(" Please enter a string (Maximum length %d characters)\n", STR_SIZE);rn gets(inPutStr);rn fflush(stdin);rn while(inPutStr[0] == 0 || inPutStr[0] == ' ')rn printf("\nNothing entered!\nPlease enter a string (Maximum length %d characters)\n");rn gets(inPutStr);rn fflush(stdin);rn rnrnrnvoid creatLinkedList(struct node *head)rn struct node *current, *previous;rn int i;rn current = head;rn current.next = (struct node*)calloc(1, sizeof(struct node));rn current = current.next;rn for ( i = 0 ; inPutStr[i] != 0 ; ++i )rn current.data = inPutStr[i];rn current.next = (struct node*)calloc(1, sizeof(struct node));rn previous = current;rn current = current.next;rn rn free(current);rn previous.next = NULL;rn current = head;rnrnrnvoid printInPutStr(struct node *head)rn printf("\nUser input:\n");rn validateLinkedList(head);rn printStr(head);rnrnrnint getNumber(void)rn int indexNum;rn printf("\n Enter Index value \n ");rn scanf("%d",&indexNum);rn fflush(stdin);rn while(indexNum < 1 || indexNum > sizeof(struct node))rn printf("\nInvalid numver, please re-enter index number\n");rn scanf("%d",&indexNum);rn fflush(stdin);rn rn return (indexNum);rnrnrnvoid replaceNode(int indexNum, struct node *head)rn struct node *current, *previous, *forward;rn int i=0,j=0;rn int l,c;rn l=indexNum;rn current = head;rn for( ; jnext;rn rn while (current!=NULL)rn inPutStr[i]=current->data;rn current=current->next;rn i++;rn rn current = head;rn j=0;rn while(j<=l+1)rn inPutStr[i]=current->data;rn current=current->next;rn i++;rn j++;rn rn current = head;rn i=0;rn while(current != NULL)rn current.data = inPutStr[i];rn i++;rn current = current.next;rn rnrnrnvoid printOutPutStr(struct node *head)rn printf("\nModified string:\n > ");rn validateLinkedList(head);rn printStr(head);rnrnrnvoid printStr(struct node *head)rn struct node *current;rn current = head;rn dorn current = current.next;rn printf("%c", current.data);rn while(current.next != NULL);rnrnrnvoid validateLinkedList(struct node *head)rn if(head.next == NULL)rn printf("The list is empty");rn rnrn[/code]
求助!ASP.NET基础问题!
原来在ASP中由于要在多个页面里使用一样的连接和打开同一个数据库,所以使用然后将一样的代买写入一个通用文件,请问ASP.Net里怎样实现这种功能呢??
求助VB的基础问题
谁会用VB做滚动条的源程序呀,请各位告知一二了,谢谢
求助,基础问题
createoleobject functionrn我用的时候,他提示我undeclared indentifier:createoleobjectrn是不是要USE 什么库,,rnrn还有TBOOKMARK也是这样
求助 很基础的问题
function ini_template_data()rn global $page_id;rn $page_id = 1;rn $this->m_o_tpl->centre_box = gf_load_class_ex('centre_class')->get_html();rn rnrn function get_html_ex()rn $this->m_o_tpl->display(DIR_RP_TPL.'default.tpl.php');rn rn function get_html()rnrn // 根据CFG参数显示最近浏览的商品BOXrn if(CFG_DISPLAY_RECENTLY_VIEWED_BOX)rnrn require_once(DIR_RP_BOX."recently_viewed.php");rn $recently_viewed = new recently_viewed();rn $_html .= $recently_viewed->gethtml($parameter);rn rn return $_html.$this->get_html_ex();rn rnrnrn 能帮忙解释下 这段代码的意思么 谢谢了
求助:非常基础的问题!!!
我在基于对话框的程序中新加入了一个窗体,请问我该如何使单击第一个窗体上的按钮时显示第二个窗体,有就是我该如何加载第二个窗体?
基础问题求助
有一form:上面是listview,下面是webbrowser。rnlistview上列出了文件列表,在listview上双击后在webbrowser控件中打开文件。rnrn现在想做成类似于outlook,在listview上按“上下键”就能实现打开当前文件的上一个文件或者下一个文件。rn但是每次打开新的文件时,就切到webbrowser上了。还得点下listview才能继续响应“上下键”。rnrnrn请问怎么解决
求助解决基础问题
刚学mfc,看的是孙鑫的vc6.0的教程,我自己用的是vs2008rn跟这学调试的时候rnm_btn.Create()的第一个参数死活都不接受,参数名为(LPCTSTR lpczcaption)rn输入什么都是不接受类型然后提示: 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换rn求解谢谢
求助:VB基础问题
1.在PICTUREBOX中绘图后,如有窗口弹出,就会将已经或是正在绘制的图形抹掉,请问有什么办法能让原来的图形重现?rnrn2.关于VB对数据库编程,应该怎样入手?对今后VC/C++的数据库学习有帮助吗?rnrn3.在我的一项试验中,要采样任意个点,用什么办法进行曲线的拟合?
求助基础问题,急!
我在试着写一个聊天程序,在JTextArea上输入信息之后,按ctrl+enter组合键就调用别的方法发送出信息;我如何监听组合键被按下?JTextArea上又不能用ActionListener.rn是应该用KeyListener吗?我试了半天没搞出来,请高手给出代码。
[基础问题]高分求助
oXmlHttp.onreadystatechange = StateChange('countCallback');-->这样写报错rnrnoXmlHttp.onreadystatechange = StateChange;--》这样就正常rnrnfunction StateChange(p)rnrn
求助一个基础问题
就是关于数据库命名规范的问题rnrn比如说rncreate table user_info(rnuser_id number primary key,rnuser_name varchar2(32) not null);rnrn和 rncreate table userInfo(rnuserId number primary key,rnuserName varchar2(32) not null);rnrn哪个更规范一些??rnrn我记得oracle里面的数据列表名称全是大写, 所以好像谁说过应该用下划线_分开。rn后者好像是java的命名规范。
C#基础问题求助?
public int? State get; set; rnrnrn这个? 是什么意思啊
c#基础问题求助!
我在一个窗体类里引用一个普通类,rn但是在窗体类里会报“缺少using指令或程序集引用“,怎么解决?rn问题是现在我用using指令把那个类引进来,也无法解决,到底该如何做呢?
求助:MSComm 的基础问题
小弟最近学用MSComm控件,用串口调试助手发送一串16进制数给它,让他接收,结果发现它只能收到前12个,不知怎么回事,请大家帮帮忙,感激不尽,痛哭流涕!
求助MFC基础问题
我在用edit编辑一个可输入数据的程序,如果输入错误显示如图的界面,我想把提示框的名字改了,可是不知道应该怎么改,求大神帮忙,[img=https://img-bbs.csdn.net/upload/201605/13/1463102789_779339.png][/img]rn下边是我这部分的代码:rn[code=c] if(m_possize>m_xulieshu)rn rn AfxMessageBox("输入错误,请重新输入!");rn [/code]
求助。。。。。。。。。。。。。。。。基础问题。。
我在数据库中有一个varchar(20)的字段。rn里面存储的类似于5/3 3*6*2 之类的数据rn我要怎样才能把它还原成表达式用于计算呢??
ComBox 基础问题,求助
对话框 中有一个combox控件,一个List列表控件rn现在我想当用户选择Combox中选项时,List随之改变rn响应一个CBN_SELCHANGE 消息rn在消息体中调试得到的值是上一次选项值为什么呢????
百分求助基础问题
两个问题,都弄清楚了就结帐啊,rnrn一个是select count(*) from 表 rn和 select count(1) from 表rn的区别是什么,在算法上那个更好一些,rnrn另一个是怎样建立一个临时表,并且向里边传入数据,在查询出来rnrn
java基础问题(很基础!!)
话说,Java语言只能操作对象的引用? 请问什么语言能直接操作对象? 这个不是问题重点?rn 现在写一个Person类,Person类有一个String类型的Name属性,生成get 和 set 方法;rn 在main方法中使用匿名方式创建一个Person对象,进而直接调用对象的get()方法. 那么这算什么? 不能把他归结为直接操作对象么? 代码就像这样:rn public class Personrnrn private String name;rn public void setName(String name)rn rn name = name;rn rn public String getName()rn rn return name;rn rnrnrnclass Testrn rn public static void main(String args[])rn rn new Person().setName("zhangsan");rn rn rnrn
java国际化问题,求助。。。。。。。。求助。。。。。。。。
配置两个资源文件为 ApplicationResources_en_US.properties  ApplicationResources_zh_CN.propertiesrn在jsp页面上用 显示。rn现在出现个问题:首页加载后,点击不到后台的超链接,然后再更改IE语言顺序,可以正常切换不同语言显示。rn而点击到后台的经过ACTION后,再更改IE语言顺序,页面语言就不能切换了,求高手帮忙,原因为何。。。。。。。。。。。。。。。。。。。。??????
Java基础java基础
计算机工作原理 2进制基础: 计算机是如何处理数据的! 数据类型
java 基础 java 基础
java 基础 java 基础 java 基础 java 基础
java基础java基础
java基础
JAVA基础JAVA基础JAVA基础
JAVA基础JAVA基础JAVA基础JAVA基础JAVA基础
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件