Java 生手 这道题请予指点……

Java 新手 这道题请予指点……(1)设计一个商品数据类PClass,其中包含两个成员变量:商品编号(intpNumber)、单

Java 新手 这道题请予指点……
(1)设计一个商品数据类PClass,其中包含两个成员变量:商品编号(int   pNumber)、单价(double   pPrice);包含两个成员方法:显示编号showNumber()和显示单价showPrice();及两个构造函数PClass()和PClass(int   number,double   price)。
(2)设计一个完整的Java程序使用上题的类PClass,建立一个Pclass类的对象p,即PClass   p=new   PClass(1,1000.0)。然后使用showNumber()方法将商品编号显示出来,使用showPrice()方法将单价显示出来。

我写的程序段如下:
可是老有错误,请各位指点: 谢谢…………

public   class     PClass  
{
int   pNumber;
double   pPrice;
int   showNumber   (   )                                                                                                      
{
System.out.println( "商品编号是: "+pNumber);
}
double   showPrice   (   )
{
System.out.println( "价格是: "+pPrice);
}
PClass(){       }
void   PClass(int   number,double   price)
{
pNumber=number;
  pPrice=price;
}
}


public   class     Show   extends   PClass
{
public   static   void   main(String[]   args)  
{
PClass   p;
p=new   PClass(1,1000.0);
p.showNumber();
p.showPrice();

}
}


[解决办法]
public class PClass
{
int pNumber;
double pPrice;
int showNumber ( )
{
System.out.println( "商品编号是: "+pNumber);
}
double showPrice ( )
{
System.out.println( "价格是: "+pPrice);
}
PClass(){ }
void PClass(int number,double price)//void去掉 ,构造函数不用写这个
{
pNumber=number;
pPrice=price;
}
}
[解决办法]
java 源文件中要是有多个类,只允许有一个类是 public 类

你改一下这两个类的修饰试试
[解决办法]
class PClass //多个类时只能有一个声名为public,且为带主方法的那个类
{
int pNumber;
double pPrice;
void showNumber ( ) //声名为void即可,不带返回类型
{
System.out.println( "商品编号是: "+pNumber);
}
void showPrice ( )/同上
{
System.out.println( "价格是: "+pPrice);
}
PClass(){ }
PClass(int number,double price)//构造函数不带返回类型
{
pNumber=number;
pPrice=price;
}
}


public class Show extends PClass
{
public static void main(String[] args)
{
PClass p;
p=new PClass(1,1000.0);
p.showNumber();
p.showPrice();

}
}
[解决办法]
下面这样不就更直观了。
用关键字:this.
不要忘了,给上封装哦。

=================================
public class PClass
{
int Number;
double Price;
public int showNumber ( )
{
System.out.println( "商品编号是: "+Number);
}
public double showPrice ( )
{
System.out.println( "价格是: "+Price);
}
public PClass(){ }
public PClass(int number,double price)
{
this.Number=number;
this.Price=price;
}
}


public class Show extends PClass
{
public static void main(String[] args)
{
PClass p;


p=new PClass(1,1000.0);
p.showNumber();
p.showPrice();

}
}
[解决办法]
构造函数不能加修饰,加上修饰后Java就把他当成普通方法处理了
[解决办法]
第二个类只是为了测试第一个类,无需extends第一个类。
只要在同一个包里,就可以调用得到第一个类了
[解决办法]
顶一下
[解决办法]
偶还是要纠正几个错误观点:
1,构造函数加上public 没有影响,这个我实验过了
2,PClass类里面的成员变量尽量设成private 提供公共接口就可以了

[解决办法]
package com.xgss.test;

public class PClass {
private int pNumber;
private double pPrice;

public void showNumber() {
System.out.println(pNumber);
}

public void showPrice() {
System.out.println (pPrice);
}

PClass() {

}
PClass (int number ,double price) {
this.pNumber=number;
this.pPrice=price;
}

public static void main (String args[]) {
PClass p = new PClass (1,1000.0);
p.showNumber();
p.showPrice();
}
}

[解决办法]
如果你写成这样的话,我想很多人会更开心的。

/**
* Source PClass.java
*/

public class PClass
{
private int pNumber;
private double pPrice;

public PClass()
{
this(0, 0);
}

public PClass(int number, double price)
{
this.pNumber = number;
this.pPrice = price;
}

public int showNumber()
{
return this.pNumber;
}

public double showPrice()
{
return this.price;
}
}

/**
* Source PClassTest.java
*/

public class PClassTest
{
public static void main(String... args)
{
PClass p = new PClass(1, 1000.0);
System.out.println(p.showNumber());
System.out.println(p.showPrice());
}
}