Задать вопрос
@dontgiveafcuk

Как расширить класс java за счет java.io?

Имеется класс GetSet который нужно расширить за счет встроенного класа из пакета java.io*
package com.firstproject.getset;

public class GetSet  {
	
	
	private int intVariable;
	private double doubleVariable;
	private String stringVariable;
	
	public int getIntVariable(){
		return intVariable;
	}
	
	public void setIntVariable(int newIntVariable){
		intVariable = newIntVariable;
	}
	
	public double getDoubleVariable(){
		return doubleVariable;
	}
	
	public void setDoubleVariable(double newDoubleVariable){
		doubleVariable = newDoubleVariable;
	}
	
	public String getStringVariable(){
		return stringVariable;
	}
	
	public void setStringVariable(String newStringVariable){
		stringVariable = newStringVariable;
	}

	public void message(){
		
		System.out.println("Int variable = "+intVariable+
				"\nDouble variable = "+doubleVariable+
				"\nString variable = "+"\""+stringVariable+"\"");
		
	}
}


Цель такова что нужно создать объект в классе main на основе GetSet который в себе содержал бы функции BufferReader
т.е нужно сделать так чтобы я не в самом классе main присваивал значения переменным а делал это с помощью считывания строк введенных в консоль.

вот класс Main
import java.io.*;
import com.firstproject.getset.*;

public class Main{
	public static void main(String[] args){
		GetSet getset = new GetSet(Reader);
		getset.setIntVariable(1);
		getset.setDoubleVariable(6.66);
		getset.setStringVariable("Hello, World!");
		
		getset.message();
	}
}

а нужно как-то так:
import java.io.*;
import com.firstproject.getset.*;

public class Main{
	public static void main(String[] args){
		GetSet getset = new GetSet(InputStreamReader(System.in));
		getset.setIntVariable = getset.readLine();
		getset.setDoubleVariable = getset.readLine();
		getset.setStringVariable = getset.readLine();
		getset.message();
	}
}
  • Вопрос задан
  • 318 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
Так, и сделать, как вы сами сказали - расширить.
В данном случае "унаследовать":

import java.io.BufferedReader;
import java.io.Reader;

public class GetSet extends BufferedReader {
    private int intVariable;
    private double doubleVariable;
    private String stringVariable;

    public GetSet(Reader in, int sz) {
        super(in, sz);
    }

    public GetSet(Reader in) {
        super(in);
    }

    public int getIntVariable() {
        return intVariable;
    }

    public void setIntVariable(int newIntVariable) {
        intVariable = newIntVariable;
    }

    public double getDoubleVariable() {
        return doubleVariable;
    }

    public void setDoubleVariable(double newDoubleVariable) {
        doubleVariable = newDoubleVariable;
    }

    public String getStringVariable() {
        return stringVariable;
    }

    public void setStringVariable(String newStringVariable) {
        stringVariable = newStringVariable;
    }

    public void message() {

        System.out.println("Int variable = " + intVariable +
                "\nDouble variable = " + doubleVariable +
                "\nString variable = " + "\"" + stringVariable + "\"");

    }
}

Единственное замечание,
В Java такая запись некорректна:
getset.setIntVariable = getset.readLine();
Параметры функции задаются так:
getset.setIntVariable(Integer.parseInt(getset.readLine()));

Можно немного изменить функцию:
public void setIntVariable(String s) {
        intVariable = Integer.parseInt(s);
    }
Ответ написан
@cthulhudx
Прочитайте первый том Хорстманна
Ответ написан
Комментировать
@dontgiveafcuk Автор вопроса
в ЖАААве я полный нюпь, просто пытаюсь импровизировать и улучшить процесс изучения с помощью гуглА
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
18 дек. 2024, в 12:39
1000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект
18 дек. 2024, в 12:22
5000 руб./за проект