我正在完成我的程序以生成收据 我的程序读取三个事实,lecturaAnterior,lecturaActual和stratum。 这样做后告诉我nulll
它可能是什么?
感谢您的贡献。
CLASS ONE
public class Suscriptor {
private int nuip;
private String nombre;
private String apellido;`
public Suscriptor(int nuip, String nombre, String apellido) {
this.nuip = nuip;
this.nombre = nombre;
this.apellido = apellido;
}
public int getNuip() {
return nuip;
}
public String getNombre() {
return nombre;
}
public String getApellido() {
return apellido;
}
}
CLASS TWO
public class Vivienda {
private String direccion;
private String barrio;
private String ciudad;
private byte estrato;`
public Vivienda(String direccion, String barrio, String ciudad, byte estrato) {
this.direccion = direccion;
this.barrio = barrio;
this.ciudad = ciudad;
this.estrato = estrato;
}
public String getDireccion() {
return direccion;
}
public String getBarrio() {
return barrio;
}
public String getCiudad() {
return ciudad;
}
public byte getEstrato() {
return estrato;
}
CLASS THREE
public class Recibo {
public long lecturaAnterior;
public long lecturaActual;
public Vivienda viviend;
public Suscriptor suscrip;`
public Recibo(long lecturaAnterior, long lecturaActual)
throws Exception {
if (lecturaAnterior <= 0.0F ){
Exception e = new Exception ("La lectura anterior no puede ser menor a cero");
throw e;
}
this.lecturaAnterior = lecturaAnterior;
this.lecturaActual = lecturaActual;
this.viviend = viviend;
this.suscrip = suscrip;
}
public long getLecturaAnterior() {
return lecturaAnterior;
}
public long getLecturaActual() {
return lecturaActual;
}
public Vivienda getViviend (){
return viviend ;
}
public Suscriptor getSuscrip () {
return suscrip ;
}
public long Consumo (){
return ( this.lecturaActual - this.lecturaAnterior );
}
public long cargoBasico (){
if ( this.viviend.getEstrato() == 1 || this.viviend.getEstrato() == 2) {return 2000 ;}
if (this.viviend.getEstrato() == 3) { return 5000 ; }
if (this.viviend.getEstrato() == 4 || this.viviend.getEstrato() == 5 ) { return 5000; }
if (this.viviend.getEstrato() == 6 || this.viviend.getEstrato() == 7 ) { return 12000 ; }
return 0;
}
public long ValorConsumo () {
return ( this.Consumo() * 250 ) ;
}
MAIN
import java.util.Scanner;`
/**
*
* @author christian1
*/
public class Programa {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
try {
Scanner scan = new Scanner (System.in);
System.out.println("INGRESE LA LECTURA ANTERIOR : ");
long lecturaAnterior = scan.nextLong();
System.out.println("INGRESE LA LECTURA ACTUAL : ");
long lecturaActual = scan.nextLong();
System.out.println("INGRESE EL ESTRATO: ");
byte estrato = scan.nextByte();
Vivienda V1 = new Vivienda ("Av Junin 65-97","Rep De Israel","Villa de las Palmas",estrato );
Suscriptor S1 = new Suscriptor (1113587452,"Juan","Roman");
Recibo R1 = new Recibo (lecturaAnterior,lecturaActual);
System.out.println ("PAGUE PORFAVOR: SEÑOR ... " + S1.getNombre()+"QUE VIVE EN "+ V1.getDireccion() + R1.ValorTotal() + " A CONTINUACION DISCRIMINAMOS SU CONSUMO" + R1.ValorConsumo() + R1.Incremento() + R1.Descuento() + R1.ValorIva() + R1.ValorTotal());
} catch (Exception e){
System.out.println(e.getMessage());
}
} }
答案 0 :(得分:2)
正如ZouZou建议你在调试时可能会发现问题。或者读取异常可能。
在课程Recibo
中,您不设置
Vivienda viviend
Suscriptor suscrip
在构造函数中,您只需将它们分配给self。创建它们并将其传递给构造函数,就像执行lecturaAnterior
,lecturaActual
或使用setter一样。