| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1469 人关注过本帖
标题:java 中用类做为参数可以吗?我这样写怎么不可以啊
只看楼主 加入收藏
中国
Rank: 1
等 级:新手上路
帖 子:218
专家分:0
注 册:2009-1-4
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:9 
java 中用类做为参数可以吗?我这样写怎么不可以啊
class b
{
  int size;
  int list[];
}
public class c
{
  
b l=new b();
public static void chushihua(b l)
   {
      l.size=0;
   }
public static int  geshu(b l)
   {
     return l.size;
   }
public static int charu(b l,int i,int x)throws Exception
  {
      int j;
      if(l.size>=l.list.length)
   {
      System.out.println("顺序表已满无法插入");
     return 0;
   }
   else if(i<0||i>l.size)
   {
     System.out.println("参数不合法");
       return 0;
   }
   else
   {
     for(j=l.size;j>i;j--)l.list[j]=l.list[j-1];
     l.list[i]=x;
     l.size++;
     return 1;
   }
  }
public static int shanchu(b l,int i)
   {
     int j,x;
    if(l.size<=0)
{  
   System.out.println("顺序表已空无数据元素可删");
   return 0;
}
else if(i<0||i>l.size-1)
{
   System.out.println("参数不合法");
   return 0;
}
else
{
  for(j=i+1;j<=l.size-1;j++)l.list[j-1]=l.list[j];
  l.size--;
return 1;
}
}
public static int qu(b l,int i)
{
  int x;
  if(i<0||i>l.size-1)
{
  System.out.println("参数不合法");
  return 0;
}
else
{
  x=l.list[i];
  return x;
}
}
public static void main(String args[])throws Exception
{
  b m;
  m=new b();
  int i;
  chushihua(m);
  for(i=0;i<10;i++)
{
  if( charu(m,i,i+1)==0)
{
    System.out.println("错误");
    return;
}
}
if(shanchu(m,4)==0)
{
  System.out.println("错误");
    return;
}
for(i=0;i<geshu(m);i++)
{
  if(qu(m,i)==0)
{
   System.out.println("错误");
    return;
}
else qu(m,i);
}
}
}
报错说有没有赋值的异常在第21、81行
我想问问类成员可以做为函数的参数吧
那么m声明并赋值了 l要声明吗
我对java函数的理解有点错误
希望能帮我解释
搜索更多相关主题的帖子: 参数 java 
2009-07-21 18:15
ceco3000
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:61
专家分:147
注 册:2009-7-14
收藏
得分:10 
int list[]; 定义了变量没有指向对象会赋值成 null 就是说你没有new list[number];
在你使用
l.list.length
时引发了空值异常
2009-07-21 19:26
gameohyes
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:53
帖 子:1275
专家分:3629
注 册:2009-3-5
收藏
得分:0 
  道理

C#超级群 74862681,欢迎大家的到来!
2009-07-21 20:30
ET_bug
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:黑侠
帖 子:89
专家分:602
注 册:2009-7-21
收藏
得分:0 
我觉得你前面的b l =new b();可以不要
因为你把l定义成了全局的,他在每个函数中都会有影响
个人猜测,没有实验过。。。

编程之路无止境!
可是小子才入门!
2009-07-21 21:22
中国
Rank: 1
等 级:新手上路
帖 子:218
专家分:0
注 册:2009-1-4
收藏
得分:0 
我觉得还是类能不能用做参数的问题
比如说这个例子
public class A {

    public int num = 0;
   
    public static void main(String[] args) {
        A p = new A();
        B b = new B(p, 2);      
    System.out.print(p.num);
     A  ccc=new A();
      System.out.println(ccc.num);
    }


}
 class B {
    public void Bank(A a, int number) {
        a.num = number;
    }
}
  B b = new B(p, 2); 这句话就会报错
2009-07-21 21:32
中国
Rank: 1
等 级:新手上路
帖 子:218
专家分:0
注 册:2009-1-4
收藏
得分:0 
我就是把int list改为int list=new int[];报的错误更多再21、33、34array required不知道什么意思?
我也抛出了异常了,怎么编译的时候还有异常呢?
2009-07-21 21:35
谁与争疯
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:海南省
等 级:版主
威 望:191
帖 子:15071
专家分:17513
注 册:2007-4-22
收藏
得分:0 
怎么不可以?但好像是要定义为子类,不然你以为多态是怎么搞的。

论坛是我家灌水靠大家
2009-07-21 22:09
ET_bug
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:黑侠
帖 子:89
专家分:602
注 册:2009-7-21
收藏
得分:5 
是你写错了构造函数吧,构造函数是没有返回值的
class B {
    public  B(A a, int number) {
        a.num = number;
    }
}

编程之路无止境!
可是小子才入门!
2009-07-21 22:10
anlogo
Rank: 2
等 级:论坛游民
威 望:1
帖 子:293
专家分:20
注 册:2007-7-20
收藏
得分:5 
这是基本的语法问题..........................................
看看什么是构造函数~~~~~~~~~~~~~~~
2009-07-22 10:17
中国
Rank: 1
等 级:新手上路
帖 子:218
专家分:0
注 册:2009-1-4
收藏
得分:0 
数组要经过初始化才可以引用,数组的引用怎么理解。对象的引用时返回地址,那数组的引用呢?
数组一定要初始化才可以用吗?我觉得先创建,在用顺序表的方法把数据一个个插入进去不可以吗?
我改过了可以运行但是运行的结果我搞不懂
class b
{
  int size=0;
  int list[]=new int[9];  
 public static void chushihua(b l)
   {
      l.size=0;
   }
public static int  geshu(b l)
   {
     return l.size;
   }
 public static int charu(b l,int i,int x)throws Exception
  {
      int j;
      if(l.size>=l.list.length)
   {
      System.out.println("顺序表已满无法插入");
     return 0;
   }
   else if(i<0||i>l.size)
   {
     System.out.println("参数不合法");
       return 0;
   }
   else
   {
     for(j=l.size;j>i;j--)l.list[j]=l.list[j-1];
     l.list[i]=x;
     l.size++;
     return 1;
   }
  }
 public static int shanchu(b l,int i)
   {
     int j,x;
    if(l.size<=0)
{  
   System.out.println("顺序表已空无数据元素可删");
   return 0;
}
else if(i<0||i>l.size-1)
{
   System.out.println("参数不合法");
   return 0;
}
else
{
  for(j=i+1;j<=l.size-1;j++)l.list[j-1]=l.list[j];
  l.size--;
 return 1;
}
}
public static int qu(b l,int i)
{
  int x;
  if(i<0||i>l.size-1)
{
  System.out.println("参数不合法");
  return 0;
}
 else
{
  x=l.list[i];
  return x;
}
}
}
public class c
{
public static void main(String args[])throws Exception
{
  b m;
  m=new b();
  int i;
  m.chushihua(m);
  for(i=0;i<10;i++)
{
  if( m.charu(m,i,i+1)==0)
{
    System.out.println("错误");
    return;
}
}
if(m.shanchu(m,4)==0)
{
  System.out.println("错误");
    return;
}
for(i=0;i<m.geshu(m);i++)
{
  if(m.qu(m,i)==0)
{
   System.out.println("错误");
    return;
}
else m.qu(m,i);
}
}
}
怎么是顺序表已满无法插入?
怎么不是和C一样输出错误呢?
请大家教教我。
2009-07-22 18:41
快速回复:java 中用类做为参数可以吗?我这样写怎么不可以啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022139 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved