ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.12.2025
Просмотров: 3278
Скачиваний: 1
просто выводит строку на консоль. Функция O u t p u t N a m e () получает в качестве арг мента объект класса S t u d e n t , так что она может получить и вывести имя студента.
Далее функция M a i n ( ) использует для решения той же задачи функцию объект и вызывает s t u d e n t . O u t p u t B a n n e r A n d N a m e ( ) .
Метод s t u d e n t . O u t p u t B a n n e r A n d N a m e () сначала вызывает статическую функ цию O u t p u t B a n n e r ( ) . При этом вызове, поскольку не указан класс, к которому принад лежит функция, подразумевается, что она принадлежит тому же классу, что и вызывание функция, т.е. классу S t u d e n t . После этого выполняется вызов O u t p u t N a m e ( ) . Это то же функция класса, и точно так же устанавливается ее принадлежность классу S t u d Однако эта функция требует передачи ей объекта класса S t u d e n t . Метод stu d e n t . O u t p u t B a n n e r A n d N a m e () передает ей в качестве этого аргумента t h i s .
Более интересная ситуация возникает при вызове T o N a m e S t r i n g () из Output N a m e ( ) . Функция O u t p u t N a m e () объявлена как s t a t i c и, таким образом, не имеет t h i s . У нее есть переданный ей объект класса S t u d e n t , который она и использует для осуществления вызова.
Статическая функция не может вызывать нестатические методы без явного ука зания объекта. Нет объекта — нет и вызова. В общем случае статическая функ ция не может обратиться ни к одному нестатическому элементу класса. Однако нестатические методы могут обращаться как к статическим, так и к нестатич ским членам класса — данным и функциям.
В среде Visual Studio программисту доступна одна важная возможность, известные как автозавершение (auto-complete). Когда вы вводите имя класса или объекта в вашем исходном тексте, Visual Studio пытается предвидеть, какое имя класса или метода вы на мерены ввести.
Описать автозавершение в Visual Studio проще на конкретном примере. Для демонст рации того, как работает эта возможность Visual Studio, представлен следующий фраг мент исходного текста из программы M i x i n g F u n c t i o n s A n d M e t h o d s :
/ / В ы в о д з а г о л о в к а и и м е н и S t u d e n t . O u t p u t B a n n e r ( ) ;
S t u d e n t . O u t p u t N a m e ( s t u d e n t ) ; C o n s o l e . W r i t e L i n e ( ) ;
/ / П о в т о р н ы й в ы в о д з а г о л о в к а и и м е н и s t u d e n t . O u t p u t B a n n e r A n d N a m e ( ) ;
Автозавершение— удобная вещь, но если вам требуется большая помощь, их пользуйтесь командой Help^Index для вызова справки. Выводимый предметны, указатель можно ограничить, например, только темами, связанными с С# или .NET Воспользуйтесь этим предметным указателем так же, как вы пользуетесь предмет ным указателем книги. К вашим услугам также команды поиска по текстам стате справки и содержания справочной системы. Нужные вам статьи можно пометил с тем, чтобы в будущем можно было быстро к ним возвращаться.
190 |
Часть III. Объектно-основанное программирован® Г. |
Справка по встроенным функциям системной библиотеки
При использовании фрагмента программы M i x i n g F u n c t i o n s A n d M e t h o d s в каче стве примера, как только вы вводите в редакторе C o n s o l e . , Visual Studio сразу же вы водит список всех методов C o n s o l e . Стоит ввести W, как Visual Studio переходит в спи ске к первому методу, начинающемуся на W (а именно — W r i t e ()) . Если вы нажмете клавишу <1>, то перейдете к методу W r i t e L i n e ( ) , а справа от списка появится справ ка по этому методу (рис. 8.1). В справке, в частности, указано, что имеется 19 перегру женных версий данного метода — естественно, каждая со своим набором аргументов.
Рис. 8.1. Автозавершение в Visual Studio позволяет правильно выбрать требуемый метод
Вы завершаете ввод имени W r i t e L i n e . Как только вы введете после имени откры вающую скобку, Visual Studio изменит выводимое окно подсказки — теперь в нем будут показаны возможные аргументы функции (рис. 8.2).
Puc. 8.2. Visual Studio подсказывает, какие возможные аргументы может прини мать функция
Не нужно полностью вводить имя функции. Предположим, вы ввели W r i t e L , чего вполне достаточно, чтобы однозначно идентифицировать нужный вам ме тод. Не завершая ввода имени, введите открывающую скобку, и Visual Studio завершит ввод имени метода за вас. Вы можете также воспользоваться клави шами <Ctrl+Space> для появления раскрывающегося меню автозавершения.
Глава 8. Методы класса |
191 |
/ // < / s u m m a r y >
p u b l i c s t r i n g s F i r s t N a m e ;
///< s u m m a r y >
/// |
Ф а м и л и я |
с т у д е н т а |
/// |
< / s u m m a r y > |
|
p u b l i c s t r i n g |
s L a s t N a m e ; |
|
/ / I n i t S t u d e n t
// / < s u m m a r y >
/// И н и ц и а л и з а ц и я с т у д е н т а п е р е д е г о и с п о л ь з о в а н и е м .
/// < / s u m m a r y >
// / < p a r a m n a m e = " s F i r s t N a m e " > И м я с т у д е н т а < / р а г а т >
// / < p a r a m n a m e = " s L a s t N a m e " > Ф а м и л и я с т у д е н т а < / р а г а т >
p u b l i c v o i d I n i t S t u d e n t ( s t r i n g |
s F i r s t N a m e , |
s t r i n g |
s L a s t N a m e ) |
{' |
|
t h i s . s F i r s t N a m e = s F i r s t N a m e ; |
|
t h i s . s L a s t N a m e = s L a s t N a m e ; |
|
/ / O u t p u t B a n n e r
///< s u m m a r y >
/// Вывод з а г о л о в к а п е р е д в ы в о д о м и н ф о р м а ц и и о с т у д е н т е
///< / s u m m a r y >
p u b l i c s t a t i c v o i d O u t p u t B a n n e r ( )
{
C o n s o l e . W r i t e L i n e ( " Н и к а к и х х и т р о с т е й : " ) ;
/ / C o n s o l e . W r i t e L i n e ( ? к а к о й о б ъ е к т и с п о л ь з у е т с я ? ) ;
}
/ / O u t p u t B a n n e r A n d N a m e
///< s u m m a r y >
/// Вывод з а г о л о в к а с п о с л е д у ю щ и м в ы в о д о м и м е н и с т у д е н т а
///< / s u m m a r y >
p u b l i c v o i d O u t p u t B a n n e r A n d N a m e ( )
{
/ / И с п о л ь з у е т с я к л а с с S t u d e n t , н о с т а т и ч е с к о м у м е т о д у / / н е п е р е д а ю т с я н и к а к и е о б ъ е к т ы
O u t p u t B a n n e r ( ) ;
/ / Я в н а я п е р е д а ч а о б ъ е к т а O u t p u t N a m e ( t h i s , 5 ) ;
// O u t p u t N a m e
///< s u m m a r y >
/// В ы в о д и т и м я с т у д е н т а н а к о н с о л ь
///< / s u m m a r y >
/// |
< p a r a m |
n a m e = " s t u d e n t " > С т у д е н т , |
и м я |
к о т о р о г о д о л ж н о |
/// |
|
б ы т ь в ы в е д е н о < / р а г а т > |
||
/// |
< p a r a m |
n a m e = " n I n d e n t " > K ^ H 4 e c T B O п р о б е л о в в |
||
/// |
|
о т с т у п е < / р а г а т > |
||
/// |
< r e t u r n s > B b m e f l e H H a f l c T p o K a < / r e t u r n s > |
|||
p u b l i c s t a t i c s t r i n g O u t p u t N a m e ( S t u d e n t |
s t u d e n t , |
|||
|
|
i n t |
n l n d e n t ) |
|