переменная типа стринг

Тема в разделе "Java", создана пользователем maxxi, 25 апр 2007.

Статус темы:
Закрыта.
  1. maxxi

    maxxi Гость

    Вопрос такой-

    в одном классе, в конструкторе описана переменная типа стринг.
    В другом классе нужно вывести ее на экран.
    А вместо этой переменной выводится ссылка на нее.
    как вывести саму переменную? есть ли какая-то функция для этого?
     
  2. Gorgon

    Gorgon Гость

    можно посмотреть на пример кода, который выводит указатель на строку вместо самой строки ? у меня почему - то все хорошо. может быть ты StringBuffer используешь а не String ?
     
  3. maxxi

    maxxi Гость

    вот первый класс -

    public class Versicherung1 {
    double k_meter;
    int z_personen;
    String name;

    void Versicherung(double k_meter, int z_personen, String name) {
    this.name=name;//вот эту переменную надо потом вывести на консоль во втором классе


    this.k_meter=k_meter;
    this.z_personen=z_personen;

    }
    double jahrespremie() {
    double premie = 0;
    switch (z_personen) {
    case 1:case 2: premie=10+k_meter/2;
    break;
    case 3: premie=15+k_meter;
    break;
    case 4: premie=15+k_meter*1.5;
    break;
    default: premie=25+k_meter*2;
    break;
    }
    return premie;
    }
    }







    вот второй -

    public class TestVersicherung1 {


    public static void main(String[]args){
    Versicherung meier;

    meier = new Versicherung(80,5,"meier");
    double j_premie=meier.jahrespremie();
    Object name = meier;

    System.out.println("Herr/frau "+ name +" erhaelt "+j_premie+" euro Praemie"); //вот вывод этой переменной

    }}
     
  4. Gorgon

    Gorgon Гость

    Если я чего не просмотрел, переменная name в строке System.out.println("Herr/frau "+ name +" erhaelt "+j_premie+" euro Praemie"); имеет тип Versicherung, т.к. meier = new Versicherung(80,5,"meier"); Object name = meier; т.к. в Versicherung метод toString не оверрайдится, то имеем то, что имеем, а конкретнее адрес объекта. есть несколько решений. приведу одно

    было
    public class TestVersicherung1 {

    public static void main(String[]args){
    Versicherung meier;

    meier = new Versicherung(80,5,"meier");
    double j_premie=meier.jahrespremie();
    Object name = meier;

    System.out.println("Herr/frau "+ name +" erhaelt "+j_premie+" euro Praemie"); //вот вывод этой переменной

    }}

    стало

    public class TestVersicherung1 {

    public static void main(String[]args){
    Versicherung meier;

    meier = new Versicherung(80,5,"meier");
    double j_premie=meier.jahrespremie();
    // Object name = meier; <---удалить

    System.out.println("Herr/frau "+ meier.name +" erhaelt "+j_premie+" euro Praemie"); //вот вывод этой переменной

    }}

    ну соответственно классы должны быть в одном пакете (или определить getter/setter для name)
     
  5. maxxi

    maxxi Гость

    спасибо, все заработало
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей