Переменные не используются, но, безусловно, есть!- Джава - PullRequest
1 голос
/ 15 мая 2011

Итак, я получаю некоторые странные ошибки, такие как недопустимое начало типа и переменные, которые не используются, когда я их явно вызываю.Сейчас я использую последнюю версию NetBeans и не являюсь экспертом в Java, но я считаю, что мои NetBeans могут быть повреждены или что-то в этом не так.

Что касается моей логики с этими циклами if, все должно быть в порядке, поэтому я не буду вдаваться в подробности о том, для чего используется программа.

В любом случаеВот код, который я выделю для области с ошибками.

Заранее спасибо -Skeng-

import javax.swing.*;
import java.io.*;

public class Envelope extends Parcel {

protected char[] size = {'S','M','L'};

public Envelope(){

ImageIcon imageES = new ImageIcon ("..\\Images\\envelope-small.png");
ImageIcon imageEM = new ImageIcon ("..\\Images\\envelope-medium.png");
    ImageIcon imageEL = new ImageIcon ("..\\Images\\envelope-large.png");


    double ChargeS = 4.50; 
    double ChargeM = 8.50;
    double ChargeL = 16.99;        
    double ChargeFinal = 0;   **//Variable not being used**

    if (size[0] == 'S') {
        ChargeFinal = ChargeS;
    } else if (size[1] == 'M') {
        ChargeFinal = ChargeM;
    } else if (size[2] == 'L')
        ChargeFinal = ChargeL;
    }

    int zone = 0; //Zone will equal whatever the user selects for their parcel size
    double zonecharge; //ZoneCharge will be the price depending on the zone


    if (zone == 1) {             **//Illegal Start of Type** 
        zonecharge = 0;          **//Illegal Start of Type**
     } else if (zone == 2) {     **//Illegal Start of Type**
        zonecharge = 1.5;        **//Illegal Start of Type**
     } else if (zone == 3) {     **//Illegal Start of Type**
        zonecharge = 2;          **//Illegal Start of Type**
     } 

     double EndPrice = ChargeFinal * zonecharge;  **//Cannot find Symbol "ChargeFinal"**
     System.out.println("Charge: £" + EndPrice);  **//Illegal Start of Type**


@Override
public String toString() {
return "ID: " + idNum + "Zone: " + zone + "Charge: " + charge + "Size: " + size;
}

@Override
ImageIcon getImage() {
    return image;
}
}

Ответы [ 3 ]

3 голосов
/ 15 мая 2011

Это потому, что вы пропустили открывающую скобку после первого else if

if (size[0] == 'S') {
        ChargeFinal = ChargeS;
    } else if (size[1] == 'M') {
        ChargeFinal = ChargeM;
    } else if (size[2] == 'L') { // ADD THIS BRACKET
        ChargeFinal = ChargeL;
    }
2 голосов
/ 15 мая 2011

В конце этой строки есть пропущенная фигурная скобка:

    } else if (size[2] == 'L')

В результате фигурная скобка через две строки завершает работу конструктора, и появляются предупреждения «Недопустимое начало типа»потому что следующий блок кода находится вне какого-либо метода.Конечно, вы не можете иметь операторы на уровне класса!

1 голос
/ 15 мая 2011
} else if (size[2] == 'L')
    ChargeFinal = ChargeL;
}  // <-- move this bracket to the end of the constructor 

имеет дополнительную скобку, которая закрывает конструктор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...