Полная версия этой страницы:
переменная типа стринг
Вопрос такой-
в одном классе, в конструкторе описана переменная типа стринг.
В другом классе нужно вывести ее на экран.
А вместо этой переменной выводится ссылка на нее.
как вывести саму переменную? есть ли какая-то функция для этого?
можно посмотреть на пример кода, который выводит указатель на строку вместо самой строки ? у меня почему - то все хорошо. может быть ты StringBuffer используешь а не String ?
вот первый класс -
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"); //вот вывод этой переменной
}}
Если я чего не просмотрел, переменная 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)
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.