Главная » Просмотр файлов » Г. Шилдт - Полный справочник по C#

Г. Шилдт - Полный справочник по C# (1160789), страница 28

Файл №1160789 Г. Шилдт - Полный справочник по C# (Г. Шилдт - Полный справочник по C#) 28 страницаГ. Шилдт - Полный справочник по C# (1160789) страница 282019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 28)

В частности, нет необходимости в использовании переменнойareaPP. Вызов метода areaPerPerson () можно реализовать непосредственно в инструкции вызова метода WriteLine ():Console.WriteLine("Дом имеет:\n " +h o u s e . f l o o r s + " этажа\п " +IГлава 6. Введение в классы, объекты и методы139house.occupants + " жильца\п " +house.area + " общей площади, из них\п " +house.areaPerPerson() +11приходится на одного человека");В этом случае при вызове метода WriteLineO автоматически вызывается методhouse.

areaPerPerson (), и возвращаемое им значение передаетсяметодуWriteLine (). Более того, теперь обращение к методу house. areaPerPerson () можно использовать везде, где необходимо значение площади для объекта классаBuilding, которая приходится на одного человека. Например, в следующей инструкции сравниваются такие значения площадей двух зданий.If (bl.areaPerPerson() > Ь2.areaPerPerson())Console.WriteLine("В здании Ы больше места для каждого ч е л о в е к а .

" ) ;IИспользование параметровПри вызове методу можно передать одно или несколько значений. Как упоминалось выше, значение, передаваемое методу, называется аргументом. Переменная внутри метода, которая принимает значение аргумента, называется параметром. Параметры объявляются внутри круглых скобок, которые следуют за именем метода. Синтаксис объявления параметров аналогичен синтаксису, применяемому для переменных.Параметр находится в области видимости своего метода, и, помимо специальной задачи получения аргумента, действует подобно любой локальной переменной.Перед вами простой пример использования метода с параметром. В классе ChkNumопределен метод i s Prime, который возвращает значение t r u e , если переданное емузначение является простым, и значение f a l s e в противном случае.

Следовательно,метод i s Prime возвращает значение типа bool.// Простой пример использования параметра.using System;c l a s s ChkNum {// Метод возвращает t r u e , если х - простое число,public bool isPrime(int x) {for(int i=2; i < x/2 + 1; i++)if((x %i) == 0) return false;return t r u e ;class ParmDemo {public s t a t i c void Main() {ChkNum ob = new ChkNum();for(int i = l ; i < 10;if(ob.isPrime(i)) Console.WriteLine(i +" простое число.");else Console.WriteLine(i + " не простое число.");Эта программа генерирует следующие результаты:140Часть I.

Язык С#123456789простое число.простое число.простое число.не простое число.простое число.не простое число.простое число.не простое число.не простое число.,В этой программе метод isPrime вызывается девять раз, и каждый раз ему передается новое значение. Рассмотрим этот процесс более внимательно. Во-первых, обратите внимание на то, как происходит обращение к методу isPrime. Передаваемыйаргумент указывается между круглыми скобками. При первом вызове метода isPrimeему передается значение 1.

Перед началом выполнения этого метода параметр х получит значение 1. При втором вызове аргумент будет равен числу 2, а значит, и параметр получит значение 2 и т.д. Важно то, что значение, переданное как аргумент привызове функции isPrime, представляет собой значение, получаемое параметром х.Метод может иметь более одного параметра. В этом случае достаточно объявитькаждый параметр, отделив его от следующего запятой. Расширим, например, уже знакомый нам по предыдущей программе класс ChkNum, добавив в него метод l e d ( ) , который возвращает наименьший общий знаменатель (/east common denominator) дляпередаваемых ему значений.// Добавляем метод, который принимает два аргумента.using System;class ChkNum {// Метод возвращает true, если х - простое число,public bool isPrime(int x) {f o r ( i n t i=2; i < x/2 + 1; i++)i f ( ( x %i) == 0) return false;return t r u e ;// Метод возвращает наименьший общий знаменатель,public int led(int a, int b) {int max;if(isPrime(a) | isPrime(b)) return 1;max = a < b ? a : b;for(int i=2; i < max/2 + 1;if(((a%i) == 0) & ((b%i) == 0)) return i;return 1;class ParmDemo {public static void Main() {ChkNum ob = new ChkNumO;int a, b;for(int i=l; i < 10;iГлава 6.

Введение в классы, объекты и методы141if(ob.isPrime (i))Console.WriteLine(i +" простое число.");else Console.WriteLine(i + " не простое число.");a = 7;b = 8;Console.WriteLine("Наименьший общий знаменатель для " +а + " и " + b + " равен " +ob.lcd(a, b ) ) ;а = 100;b = 8;Console.WriteLine("Наименьший общий знаменатель для " +а + " и " + b + " равен " +ob.lcd(a, b));а = 100;b = 75;Console.WriteLine("Наименьший общий знаменатель для " +а + " и " + b + " равен " +ob.lcd(a, b));Обратите внимание на то, что при вызове метода l c d ( ) аргументы также разделяе т с я запятыми. Вот результаты выполнения этой программы:1 простое число.2 простое число.3 простое число.4 не простое число.5 простое число.6 не простое число.7 простое число.8 не простое число.9 не простое число.Наименьший общий знаменатель для 7 и 8 равен 1Наименьший общий знаменатель для 100 и 8 равен 2Наименьший общий знаменатель для 100 и 75 равен 5При передаче методу нескольких параметров каждый из них должен сопровождаться указанием собственного типа, причем типы параметров могут быть различными.

Например, следующая запись вполне допустима:int myMeth(int a, double b, float с) {// . . .IДобавление параметризованного метода в класс B u i l d i n gДля добавления в класс B u i l d i n g нового средства (вычисления максимально допустимого количества обитателей здания) можно использовать параметризованныйметод. При этом предполагается, что площадь, приходящаяся на каждого человека, недолжна быть меньше определенного минимального значения. Назовем этот новыйметод maxOccupant () и приведем его определение./* Метод возвращает максимальное количество человек,если на каждого должна приходиться заданнаяминимальная площадь. */I142*Часть I.

Язык С #I public int maxOccupant(int minArea) {1return area / minArea;I}При вызове метода maxOccupant () параметр minArea получает значение минимальной площади, необходимой для жизнедеятельности каждого человека. Результат,возвращаемый методом maxOccupant ( ) , получается как частное от деления общейплощади здания на это значение.ПриведемполноеопределениеклассаBuilding,включающееметодmaxOccupant()./*Добавляем параметризованный метод, вычисляющиймаксимальное количество человек, которые могутзанимать это здание в предположении, что на каждогодолжна приходиться заданная минимальная площадь.*/using System;class Building {public int floors;// количество этажейpublic int area;// общая площадь зданияpublic int occupants; // количество жильцов// Метод возвращает площадь, которая приходится/ / н а одного человека,public int areaPerPerson() {return area / occupants;}/* Метод возвращает максимальное возможное количествочеловек в здании, если на каждого должна приходитьсязаданная минимальная площадь.

*/public int maxOccupant(int minArea) {return area / minArea;// Использование метода maxOccupant().c l a s s BuildingDemo {p u b l i c s t a t i c void Main() {Building house = new B u i l d i n g ( ) ;Building office = new B u i l d i n g ( ) ;// Присваиваем значения полям в объекте house,house.occupants = 4;house.area = 2500;h o u s e . f l o o r s = 2;// Присваиваем значения полям в объектеo f f i c e . o c c u p a n t s = 25;o f f i c e .

a r e a = 4200;o f f i c e . f l o o r s = 3;office,Console.WriteLine("Максимальное число человек для дома, \п" +"если на каждого должно приходиться " +300 + " квадратных футов: " +Глава 6. Введение в классы, объекты и методы143house.maxOccupant(300));Console.WriteLine("Максимальное число человек для офиса, \п" +"если на каждого должно приходиться " +300 + " квадратных футов: " +office.maxOccupant(300));Результаты выполнения этой программы выгладят так.,Максимальное число человек для дома,если на каждого должно приходиться 300 квадратных футов: 8Максимальное число человек для офиса,если на каждого должно приходиться 300 квадратных футов: 14Как избежать написания недостижимого кодаПри создании методов старайтесь не попадать в ситуации, когда часть кода ни прикаких обстоятельствах не может быть выполнена.

Никогда не выполняемый код называется недостижимым и считается некорректным в С#. Компилятор при обнаружениитакого кода выдаст предупреждающее сообщение. Вот пример:public void m() {char a, b;if(a==b) {Console.WriteLine("равны");return;} else {Console.WriteLine("не равны");return;}Console.WriteLine("Это недостижимый код.");}Здесь последняя инструкция вызова метода WriteLine () в методе т ( ) никогда небудет выполнена, поскольку до нее при любых обстоятельствах будет совершен выходиз метода m (). При попытке скомпилировать этот метод вы получите предупреждение.

Характеристики

Тип файла
PDF-файл
Размер
24,15 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее