黑马程序员技术交流社区

标题: 一个类访问另一个类中的方法 [打印本页]

作者: 李凤鸣    时间: 2012-11-25 01:11
标题: 一个类访问另一个类中的方法
本帖最后由 李凤鸣 于 2012-12-21 02:47 编辑
  1. <p>class Person3
  2. {
  3.       private String name="zhang";
  4.       int id=5;
  5.        void function()
  6.       {
  7.           System.out.println(name);
  8.        }
  9.       
  10.       
  11.       
  12. }</p><p>class Person4
  13. {
  14. Person3 person3=new Person3();
  15. <font style="background-color: silver;" color="red">person3.function();//这么写不对</font>
  16. }</p><p>public class Lianxi {
  17. public static void main(String[] args) {
  18.   Person3 person3=new Person3();
  19.   person3.function();
  20. }</p><p>}
  21. </p><p> </p>
复制代码
我想在类Person4里面访问Person3的方法function,应该怎么写呢
我写的方法在主函数可以,可在Person4类里面就不行了


作者: 马良    时间: 2012-11-25 08:07
我不清楚你的Person4类定义起来有什么用,貌似类中最基本的元素就是变量和方法,你看看自己的Person3类是不是只有最基本的变量和方法,(像实例对象都应该在方法里去创建)
你直接在类里创建了一个实例对象,还用这个对象去调用它的方法,这样肯定是行不通的。
但是你在Lianxi里,有一个主函数,在函数里面创建和调用方法,那是没有任何疑问的!
若有空,我倒希望你把这个错误贴出来看看。
作者: 吴瑞祥    时间: 2012-11-25 09:31
比如你要在P3里调用P4的方法,
那你要在P3里建立一个P4的对象.
然后在P3的方法中,调用这个对象中的方法
作者: 徐军涛    时间: 2012-11-25 09:51
package com.xml.bean;
class Person3
{
private String name="zhang";
      int id=5;
      void function()
      {
          System.out.println(name);
       }
}
class Person4{
  //因为:既然想调用Person3中的function,就应该像你这么考虑;为什么会出错呢?
  //类封装属性,就是属性有所属,有标记,以便明确所属
  //但是像你这样写,这2个语句没有意义,不知道所属,把它们封装起来就可以了
//   Person3 person3=new Person3();
//   person3.function();//这么写不对,
   void  fun(){
   Person3 person3=new Person3();
   person3.function();//改为这样
  }
}

public class Lianxi {
public static void main(String[] args) {
  Person3 person3=new Person3();
  person3.function();
}
}



作者: super_Xiong    时间: 2012-11-25 19:24
简单的说就是,没有对象,无法调用
作者: 王斌    时间: 2012-11-26 16:33
在一个类里面调用另一个类的方法,首先在这个类里面new 另个类的对象,用对象调用另个类的方法是可以的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2