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

  • Автор темы maxxi
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

maxxi

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

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

Gorgon

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

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"); //вот вывод этой переменной

}}
 
G

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)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!