跪求JAVA大神 解决程序中错误!

作者&投稿:野司 (若有异议请与网页底部的电邮联系)
public class Apple{
//●●●首先要学会缩进,这样程序在格式上才清晰
private String color;
private String size;
//●●方法应该想我这样写,看得才清楚。告诉你这都是正经的专业编程规约
public void setColor(String color){
this.color = color;
}
//●●get 和set 是成对出现的,这样最好是写到一起
public String getColor(){
return this.color;
}; //这个地方有个“;”分号,应该删除。

public void setSize(String size){
this.size = size;
}
public String getSize(){
return this.size;
};
}

public class AppleLoader{
String calculateWeight(Apple a){
//具体代码省略
}
}
public class MyClass{
public String collectAppleInfo(List<Apple> appleList){
AppleLoader loader = null;
String appleInfo = “”;
//●●这个地方要把appleList.size()放到循环外边写,这样会提高循环的效率。应该像下边注释这么写:
//●● int tmpSize = appleList.size();
//●●for(int i = 0; i < tmpSize ; i++){
for(int i = 0; i < appleList.size(); i++){
Apple a = appleList.get(i);
//●●这个地方也有问题,因为null判断可以直接判断,
//●●判断是否等于“GREEN”时,最好是把“GREEN”放在前面比较,代码如下注释:
//●●if(a.getSize() == null || “GREEN”.equals(a.getColor())) {
if(a.getSize().equals(null) || a.getColor().equals(“GREEN”)) {
continue;
}else{
loader = new AppleLoader();
String weight = loader.calculateWeight(a);
//●●这个地方的字符串连接最好要用StringBuffer来实现
//●●方法如下:
//●●StringBuffer appleInfo = new StringBuffer();
//●●appleInfo.append("Apple[");
//●●appleInfo.append(String.valueOf(i)); //这个地方也应该这样写
//●●appleInfo.append(“]:”); 后边省略
appleInfo += “Apple[” + i + “]:”;
appleInfo += “color = ” + a.getColor() + “, ”;
appleInfo += “size = ” + a.getSize() + “, ”;
appleInfo += “weight = ” + weight + “, ”;
appleInfo += “date = ” + new Date() + “\n”;
}
}
return appleInfo;
}
}

以上是鄙人的拙见。
补充说明:
1)关于“GREEN”.equals(a.getColor())的写法。主要是防止a.getColor()是null无法调用equals方法所以才这么写。当然你在前面已经判断了null了,但是这种写法是一种编程习惯,前列建议你这么写。对编程规约严格要求的公司也把这点作为编程规约。
2)字符串过多的相连用StringBuffer 的写法。
主要是针对java的字符串池的原理才这么写的,你可一自己上网查查,用StringBuffer可以节约内存资源。
3)关于在循环中用appleList.size()的说明。
在每次for循环时都要比较i < appleList.size()。这样每次都要调用 appleList.size(),这样就会降低for循环的效率,当然在较小的循环里这样的效率浪费是微不足道的。但还是建议把他写在外边。

a.getSize().equals(null)
比null最好这样比null==a.getSize();

String calculateWeight(Apple a){
//具体代码省略
}
默认的访问权限...如果不在同一个包 将访问不到AppleLoader里的calculateWeight方法

如果你用List来循环,那么在添加数据的时候建议用 add 不知道说的对不对。

1.public void setSize(String size){this.size = size;}这种写法不规范,应该写成这样:
public void setSize(String size){
this.size = size;
}
2.a.getSize().equals(null)这也是错误的,如果a.getSize()==null了,你再a.getSize().equals()就会报空指异常(NullPointerException),应该改为:
null==a.getSize()

你这个文件有三个类,但是只能有一个是puiblic的,也就是公共类,别的类都不能为外界访问,只能为这public的类访问,所以这样该市最大的毛病吧

a.getSize().equals(null) 是错误的,应改为a.getSize()==null

java问题 跪求大神解答~

public class ChoiceSort { public static void _choiceSort(Integer[] a) { if (a == null || a.length a[j]) { /* 如果有小于当前最小值的关键字 */ min = j; /* 将此关键字的下标赋值给min */ } } if (i != min) {/* 若min不等于i,说明找到最小值,交换 */ int tmp = a[min]; a[min] = a[i]; a[i] = tmp; } } } public static void main(String[] args) { // TODO Auto-generated method stub Integer[] list={49,38,65,97,76,13,27,14,10,6}; //选择排序 ChoiceSort._choiceSort(list); for(int i=0;i<list.length;i++){ System.out.print(list[i]+" "); } System.out.println(); }}

给你代码:
import java.util.Scanner;

public class Test
{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
int a;
do
{
System.out.print("请输入一个二位数:");
a=in.nextInt();

}while(a>=100 || a<10);
int b=a*a;
int c=b%100;
String s=(a==c?"yes":"no");
System.out.println(a+""+s+""+a+"*"+a+"="+b);

}
}