Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
6 / 6 / 3
Регистрация: 22.06.2010
Сообщений: 320

Методы и классы в коде, не могу понять.

26.10.2010, 17:59. Показов 1159. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здравствуйте.

Есть код:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Automobile {
  private static int number;
 
  Automobile() {
  number++;
  System.out.println("From automobile number = "+number);
}
}
 
 
public class AutomobileTest {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       Automobile lada = new Automobile(),
                  ford = new Automobile(),
                  oka =  new Automobile();
 
    }
 
}
на экран выводится
From automobile number = 1
From automobile number = 2
From automobile number = 3

Почему выводится три раза? Для кого то этот вопрос очень легкий, изучаю сейчас что такое классы, методы и объекты, в книжке описано сложно. Объясните мне доходчиво работу этой программы.

Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2010, 17:59
Ответы с готовыми решениями:

НЕ могу понять классы
Помогите реализовать с коментарии: "Разработайте и реализуйте класс Name_pa±rs, содержащий пару (имя,возраст), где имя— объект класса...

Не могу понять зачем нужны классы
Обьяснити начинающему программисту зачем нужны классы???

Не могу понять задание,пожалуйста.Классы
Реализовать в задании три конструктора (без аргументов, инициализации, копирования) и деструктор. Реализовать в конструкторе...

8
эволюционирую потихоньку
 Аватар для TanT
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
26.10.2010, 19:52
ты создаёшь три объекта, в каждом объекте вызывается конструктор при создании объекта, в конструкторе стоит вывод на консоль. вот
0
6 / 6 / 3
Регистрация: 22.06.2010
Сообщений: 320
26.10.2010, 20:48  [ТС]
спасибо, понятно но не до конца. Вызывается конструктор или метод при создании объекта?
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
26.10.2010, 20:50
dimiby, при создании объекта используется ключевое слово new, которое неявным образом вызывает конструктор. В конструкторе вы можете вызывать все что угодно
1
6 / 6 / 3
Регистрация: 22.06.2010
Сообщений: 320
26.10.2010, 23:34  [ТС]
спасибо)))

Т.е. мы по сути говоря вызываем метод Automobile()? Это метод, я правильно понял?
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
27.10.2010, 00:00
Automobile() - это не метод, это конструктор.

Конструктор можно отличить от метода по двум признакам:
1) его имя совпадает с именем класса
2) он не возвращает значений
0
 Аватар для Fury
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 10
27.10.2010, 00:27
Цитата Сообщение от dimiby Посмотреть сообщение
спасибо)))

Т.е. мы по сути говоря вызываем метод Automobile()? Это метод, я правильно понял?
По сути говоря, специально конструктор мы не вызываем. Просто при создании какого-либо объекта любого класса вызывается конструктор этого класса. Создашь 100 объектов класса "Собака" - при каждом создании объекта будет вызываться конструктор.

Как уже сказал M128K145, конструктор может принимать параметры, но не может возвращать значения, даже типа void.

Например:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
class Automobile {
  private static int number;
 
  Automobile(int n) {
  number=n;
  System.out.println("From automobile number = "+number);
}
}
 
//.....................
Automobile lada = new Automobile(5);
 
}

И, пожалуй, не соглашусь с M128K145: конструктор, это метод класса, имя которого совпадает с именем самого класса.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
27.10.2010, 00:39
Цитата Сообщение от Fury Посмотреть сообщение
конструктор, это метод класса, имя которого совпадает с именем самого класса
Это не метод, т.к. это довольно специфическая конструкция, действия и особенности которой не совпадают с методами.
Помимо возвращаемых значений также нельзя сделать конструктор статическим, нельзя его явно вызвать, конструктор по-другому воспринимается компилятором, методом невозможно выделить память под объект.
Думаю, про такие вещи как super() говорить не надо?
0
 Аватар для Fury
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 10
28.10.2010, 18:23
Цитата Сообщение от M128K145 Посмотреть сообщение
Это не метод, т.к. это довольно специфическая конструкция, действия и особенности которой не совпадают с методами.
Помимо возвращаемых значений также нельзя сделать конструктор статическим, нельзя его явно вызвать, конструктор по-другому воспринимается компилятором, методом невозможно выделить память под объект.
Думаю, про такие вещи как super() говорить не надо?
Вы меня не так поняли
Говорить что конструктор — это метод, все равно что говорить что австралийский утконос — просто млекопитающее. Чтобы понять кто такой утконос, необходимо знать чем он отличается от других млекопитающих. Чтобы понять сущность конструктора, аналогично, необходимо понять чем он отличается от простого метода.
(с)Сперто с javable.com
Де-юре конструктор - это метод.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2010, 18:23
Помогаю со студенческими работами здесь

Методы сортировки!не могу понять почему не робит!
Всем привет,написал прогу и не работает,не могу понять почему!сколько раз просматривал все норм вроде бы! #pragma argsused #include...

Не могу понять классы. Как их наполнить данными?
Добрый день, форумчане. Пытаюсь изучить классы в ООП, и не могу понять, как с ними работать. Помогите разобраться, к примеру, есть два...

не могу понять ошибки в коде
Запускаю этот код в браузере: function getDate(str){ var regexp = /^(?\d)-(?\d)-(\d{3})$/; var f = str.match(regexp); ...

Не могу понять ошибку в коде
var name1:String="Serik"; var name2:String="Azamat"; var name3:String="Kuanish"; var name4:String="Jansaya"; var...

Учу классы. Не запускается простейшая прога.Не могу понять причину
#include "stdafx.h" #include <stdio.h> #include <iostream> #include <string> using namespace std; class MyDogs{ public: int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru