java 数组 方法 返回值问题
importjava.util.*;publicclassDobjiect{publicstaticvoidmain(String[]args){student[]a=n...
import java.util.*;
public class Dobjiect
{
public static void main(String[] args)
{
student[] a = new student[5];
a[2].name = nm;
for(int i=0;i<5;i++){ a[i] = new student();}
a=shan(a,"nm");
public static student[] shan(student[] a,String nm)
{
for(int i=0;a.length<5;i++)
{ a[2].name =nm ;
if(a[i].name.equals(a[2].name))
{
a[i]=null;
for(int ii=0;ii<5;ii++)
{
System.out.println(a[ii].old+""+a[ii].name);}
}
}
}
return a;
}
}
class student{
int old;
String name;
void uitls(int old,String name){
this.old = old;
this.name = name;
}
}
怎么样修改才能使a[2]的指向为null,并打印出所有student为null 展开
public class Dobjiect
{
public static void main(String[] args)
{
student[] a = new student[5];
a[2].name = nm;
for(int i=0;i<5;i++){ a[i] = new student();}
a=shan(a,"nm");
public static student[] shan(student[] a,String nm)
{
for(int i=0;a.length<5;i++)
{ a[2].name =nm ;
if(a[i].name.equals(a[2].name))
{
a[i]=null;
for(int ii=0;ii<5;ii++)
{
System.out.println(a[ii].old+""+a[ii].name);}
}
}
}
return a;
}
}
class student{
int old;
String name;
void uitls(int old,String name){
this.old = old;
this.name = name;
}
}
怎么样修改才能使a[2]的指向为null,并打印出所有student为null 展开
3个回答
展开全部
你这代码粘过来的时候有问题,}的位置不对,这段代码后面应该有个},表示当前方法结束
a=shan(a,"nm");}
而且下面程序System.out.println(a[ii].old+""+a[ii].name);}后多了一个}
你student[] a = new student[5];虽然创建了a[]数组,但是你的a[2]为null所以他不能有name属性,所以程序会抱错,空指针异常
不明白你要实现什么功能
追问
我想做的功能是输入一个name 和student.name对比,相同的话 就把这个student从a数组中删除
追答
import java.util.Scanner;
public class Dobjiect {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入字符:");
String sr = sc.next();
student[] a = new student[5];
for (int i = 0; i < 5; i++) {
a[i] = new student();
}
a[0].name = "name1"; a[0].old = 1;
a[1].name = "name2"; a[1].old = 2;
a[2].name = "name3"; a[2].old = 3;
a[3].name = "name4"; a[3].old = 4;
a[4].name = "name5"; a[4].old = 5;
a = shan(a, sr);
for (int j = 0; j < 5; j++) {
System.out.println(a[j] != null ? a[j].name : null);
}
}
public static student[] shan(student[] a, String nm) {
for (int i = 0;i < a.length ; i++) {
if (a[i].name.equals(nm)) {
a[i] = null;
}
}
return a;
}
}
stdent类不变,这样写更明白些
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
student[] a = new student[5];
这句话错了,赋值错了,应该是 ,你要把每一个实例化后赋值,比如 a[0] = new student();
a[1] = new student();
a[2] = new student();
a[3] = new student();
a[4] = new student();
然后再进行其它操作
这句话错了,赋值错了,应该是 ,你要把每一个实例化后赋值,比如 a[0] = new student();
a[1] = new student();
a[2] = new student();
a[3] = new student();
a[4] = new student();
然后再进行其它操作
追问
for(int i=0;i<5;i++){ a[i] = new student();}我有赋值啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先你的静态方法应该在外面写,还有你的静态方法没有返回
所以你的a=shan()会出错
还有你的a对象为空怎么会调用它
一调用就汇报空指针异常
package com.zxwl.flzy.advertising.action;
/**
* @author xjq
* @version 创建时间:2013-9-3 下午4:41:28
* 类说明
*/
import java.util.*;
public class test
{
public static student[] shan(student[] a, String nm)
{
for (int i = 0; a.length < 5; i++)
{
a[2].name = nm;
if (a[i].name.equals(a[2].name))
{
a[i] = null;//你的这里为空
for (int ii = 0; ii < 5; ii++)
{
System.out.println(a[ii].old + "" + a[ii].name);//这句调用汇报java.lang.NullPointerException
}
}
}
return a;
}
public static void main(String[] args)
{
student[] a = new student[5];
a[2].name = "nm";
for (int i = 0; i < 5; i++) {
a[i] = new student();
}
a = shan(a, "nm");
}
}
class student {
int old;
String name;
void uitls(int old, String name) {
this.old = old;
this.name = name;
}
}
因为a[2]和a[2]相等,打印a[ii]=a[2]时会包空指针
你将
a[2].name = "nm";
放到
for (int i = 0; i < 5; i++) {
a[i] = new student();
}
后面
student[] a = new student[5];
还没有创建new对象,你就赋值了,也会报错
所以你的a=shan()会出错
还有你的a对象为空怎么会调用它
一调用就汇报空指针异常
package com.zxwl.flzy.advertising.action;
/**
* @author xjq
* @version 创建时间:2013-9-3 下午4:41:28
* 类说明
*/
import java.util.*;
public class test
{
public static student[] shan(student[] a, String nm)
{
for (int i = 0; a.length < 5; i++)
{
a[2].name = nm;
if (a[i].name.equals(a[2].name))
{
a[i] = null;//你的这里为空
for (int ii = 0; ii < 5; ii++)
{
System.out.println(a[ii].old + "" + a[ii].name);//这句调用汇报java.lang.NullPointerException
}
}
}
return a;
}
public static void main(String[] args)
{
student[] a = new student[5];
a[2].name = "nm";
for (int i = 0; i < 5; i++) {
a[i] = new student();
}
a = shan(a, "nm");
}
}
class student {
int old;
String name;
void uitls(int old, String name) {
this.old = old;
this.name = name;
}
}
因为a[2]和a[2]相等,打印a[ii]=a[2]时会包空指针
你将
a[2].name = "nm";
放到
for (int i = 0; i < 5; i++) {
a[i] = new student();
}
后面
student[] a = new student[5];
还没有创建new对象,你就赋值了,也会报错
更多追问追答
追问
我想做的功能是输入一个name 和student.name对比,相同的话 就把这个student从a数组中删除,这怎么做 ,我没有个思路,想不出来
追答
键盘键入吗
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询