Правильно ли я понимаю понятие сlass в ООП?

Компьютеры программирование java ООП

Здравствуйте. Скажите пожалуйста правильно ли я понимаю понятие класса в ООП. Я понял это так: На прямую с классом работать мы не можем, поэтому мы работаем с экземплярами класса (то есть с его объектами) которые в свою очередь имеют свойства, события и методы. У каждого объекта есть свой интерфейс который в свою очередь определяет какие запросы мы можем послать к этому объекту. Но напрямую с объектом мы тоже не можем работать поэтому даём нашему объекту имя (то есть делаем на него ссылку указывая что созданное нами имя и есть тот самый объект). Непосредственно объект мы изменять не можем поэтому мы через оператор new создаём новый экземпляр этого объекта. С которым можем уже производить какие то действия.

Light lt = new Light()
lt on();

Как я понимаю на примере этого кода. Мы имеем объект OnClickListener с которым напрямую мы работать не можем. Поэтому мы даём этому объекту имя (то есть делаем ссылку на объект), в нашем случае это btnOK. Для того что бы нам работать с btnOK мы должны создать экземпляр этого объекта который в свою очередь мы сможем изменять (то есть который сможет реагировать на наши запросы).
У объекта OnClickListener существует событие onClick которое срабатывает при нажатии на кнопку. У объекта tvOut есть событие setText которое выводит необходимый нам текст.


OnClickListener btnOK = new OnClickListener() {
@Override
public void onClick(View v) {
// Меняем текст в TextView (tvOut)
tvOut.setText("Нажата кнопка ОК");
}
};

Так это понимаю я но ведь OnClickListener - это не объект а метод. Причём тут его называют событием
<Button
android:id="@+id/butHello"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:onClick="butHello_Click"
android:text="Поздороваться" />

А тут методом.
public void butHello_Click(View v){
TextView tvHello = (TextView)findViewById(R.id.textView1);
tvHello.setText("Hello!!!");
}

Просьба не ругаться а помочь разобраться, в чём моя ошибка. Мне необходимо это понять желательно на примерах. Спасибо за помощь.
Ответы:
В вашем вопросе, Алексей, правильные рассуждения идут вперемежку с немного странными представлениями.
"На прямую с классом работать  мы не можем"
У классов бывают статические члены.
Под .NET хорошим примером служит MessageBox.Show(), под андроидом - соответственно Toast.makeText().
Show и makeText - статические методы и не требуют создания экземпляров класса.


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.