Dawnbrocker

Пользователь

Регистрация: 04.12.2022

Сообщения: 1440

Рейтинг: 1228

Dawnbrocker

Регистрация: 04.12.2022

Сообщения: 1440

Рейтинг: 1228

img

Есть 2 случая:

Первый случай
Второй случай

 

С первым случаем всё просто и понятно pepecool.png?1592046811.

Но я никак не могу понять PepeBadFeel.png?1598553375, почему во втором случае мы можем обратиться к параметру private , который ограничен только видимостью своего класса GivePLZ.png?1616515136. У нас же не должно быть возможности обратиться к методу Bratishka.png?1619500459. Или метод(функция) вызывает сначала параметр внутри класса, а потом возвращает уже нам "Jane" relaxeat.gif?1631454183?

 

P.S.: 

Локальный мем

 

 

 

KRATI

Пользователь

Регистрация: 25.09.2021

Сообщения: 2862

Рейтинг: 1337

KRATI

Регистрация: 25.09.2021

Сообщения: 2862

Рейтинг: 1337

img

черным по белому написано что это синтаксический сахар где ты приватные свойства класса определяеешь в списке параметров конструктора.

 

то есть в обоих случаях приватное свойство name в классе присутствует, которое видимо из метода класса

Dawnbrocker

Пользователь

Регистрация: 04.12.2022

Сообщения: 1440

Рейтинг: 1228

Dawnbrocker

Регистрация: 04.12.2022

Сообщения: 1440

Рейтинг: 1228

img
KRATI сказал(а):

черным по белому написано что это синтаксический сахар где ты приватные свойства класса определяеешь в списке параметров конструктора.

 

то есть в обоих случаях приватное свойство name в классе присутствует, которое видимо из метода класса

Нажмите, чтобы раскрыть...

Чёрным по белому написано в первом случае:

 

 person.name isn't accessible from outside the class since it's private

Закись Ашота

Пользователь

Регистрация: 10.05.2013

Сообщения: 13017

Рейтинг: 7465

Закись Ашота

Регистрация: 10.05.2013

Сообщения: 13017

Рейтинг: 7465

img

Я знал ответ, но забыл. PepeCry.png

KRATI

Пользователь

Регистрация: 25.09.2021

Сообщения: 2862

Рейтинг: 1337

KRATI

Регистрация: 25.09.2021

Сообщения: 2862

Рейтинг: 1337

img
Dawnbrocker сказал(а):

Чёрным по белому написано в первом случае:

 

 person.name isn't accessible from outside the class since it's private

Нажмите, чтобы раскрыть...

ты косвенно делаешь его видимым через метод. само свойство приватное, но метод, который возвращает значение свойства - публичный.

 

обращаю внимание на то, что ты оперируешь значением свойства, а не свойством. вне класса ты не можешь напрямую к нему обратиться, и следовательно изменить его, пока не напишешь метод который это делает

Dawnbrocker

Пользователь

Регистрация: 04.12.2022

Сообщения: 1440

Рейтинг: 1228

Dawnbrocker

Регистрация: 04.12.2022

Сообщения: 1440

Рейтинг: 1228

img
KRATI сказал(а):

ты косвенно делаешь его видимым через метод. само свойство приватное, но метод который, возвращает значение свойства - публичный.

 

обращаю внимание на то, что ты оперируешь значением свойства, а не свойством. вне класса ты не можешь напрямую к нему обратиться, и следовательно изменить его, пока не напишешь метод который это делает

Нажмите, чтобы раскрыть...

Этот ваш синтаксический сахар. Кто вообще это выражение придумал. Я себя диабетиком чувствую. 

Закись Ашота

Пользователь

Регистрация: 10.05.2013

Сообщения: 13017

Рейтинг: 7465

Закись Ашота

Регистрация: 10.05.2013

Сообщения: 13017

Рейтинг: 7465

img
Dawnbrocker сказал(а):

Этот ваш синтаксический сахар. Кто вообще это выражение придумал. Я себя диабетиком чувствую. 

Нажмите, чтобы раскрыть...

"Костыль" лучше звучит? sammyyPepekek.png?1598626065

Pudgewerksaw

Пользователь

Регистрация: 06.01.2021

Сообщения: 2425

Рейтинг: 1005

Нарушения: 109

Pudgewerksaw

Регистрация: 06.01.2021

Сообщения: 2425

Рейтинг: 1005

Нарушения: 109

У у6бища появился конкурент. 

 

Joker584

Пользователь

Регистрация: 31.10.2013

Сообщения: 2296

Рейтинг: 1729

Joker584

Регистрация: 31.10.2013

Сообщения: 2296

Рейтинг: 1729

примеры идентичны. getName - это public метод-геттер. ты просто получаешь значение name, но не можешь его менять

YoshkinKot

Пользователь

Регистрация: 20.06.2016

Сообщения: 13994

Рейтинг: 5548

YoshkinKot

Регистрация: 20.06.2016

Сообщения: 13994

Рейтинг: 5548

Dawnbrocker сказал(а):

С первым случаем всё просто и понятно pepecool.png?1592046811.

Но я никак не могу понять PepeBadFeel.png?1598553375, почему во втором случае мы можем обратиться к параметру private , который ограничен только видимостью своего класса GivePLZ.png?1616515136. У нас же не должно быть возможности обратиться к методу Bratishka.png?1619500459. Или метод(функция) вызывает сначала параметр внутри класса, а потом возвращает уже нам "Jane" relaxeat.gif?1631454183?

Нажмите, чтобы раскрыть...

между первым и вторым примером нет никакой разницы...

Dawnbrocker

Пользователь

Регистрация: 04.12.2022

Сообщения: 1440

Рейтинг: 1228

Dawnbrocker

Регистрация: 04.12.2022

Сообщения: 1440

Рейтинг: 1228

img
KRATI сказал(а):

ты косвенно делаешь его видимым через метод. само свойство приватное, но метод, который возвращает значение свойства - публичный.

 

обращаю внимание на то, что ты оперируешь значением свойства, а не свойством. вне класса ты не можешь напрямую к нему обратиться, и следовательно изменить его, пока не напишешь метод который это делает

Нажмите, чтобы раскрыть...

Спасибо, что всё разъяснил ZeroTwoHappy.png?1621091332, от души, брат AnimeHugs.png?1621091397. Я просто полдня сижу и читаю этот typescript HAhaa.png?1616514247.

 

P.S.: Хейтеров к стенке на расстрел PepeGun2.gif?1592102710

Закись Ашота сказал(а):

"Костыль" лучше звучит? sammyyPepekek.png?1598626065

Нажмите, чтобы раскрыть...

Удобная фича, альтернативный синтаксис, другая запись. 

Striped

Пользователь

Регистрация: 24.11.2021

Сообщения: 133

Рейтинг: 21

Striped

Регистрация: 24.11.2021

Сообщения: 133

Рейтинг: 21

img

в откликах на хх уже нашел работу веб разработчика? 

Dawnbrocker

Пользователь

Регистрация: 04.12.2022

Сообщения: 1440

Рейтинг: 1228

Dawnbrocker

Регистрация: 04.12.2022

Сообщения: 1440

Рейтинг: 1228

img
Striped сказал(а):

в откликах на хх уже нашел работу веб разработчика? 

Нажмите, чтобы раскрыть...

Вторую пока не нашёл PepeHappy.gif?1613920413

Striped

Пользователь

Регистрация: 24.11.2021

Сообщения: 133

Рейтинг: 21

Striped

Регистрация: 24.11.2021

Сообщения: 133

Рейтинг: 21

img
Dawnbrocker сказал(а):

Вторую пока не нашёл PepeHappy.gif?1613920413

Нажмите, чтобы раскрыть...

веб разраб значит...CoolNut.png?1619501245

y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 13353

Рейтинг: 2158

Нарушения: 15

y6ejushe

Регистрация: 24.10.2021

Сообщения: 13353

Рейтинг: 2158

Нарушения: 15

Pudgewerksaw сказал(а):

У у6бища появился конкурент. 

 

Нажмите, чтобы раскрыть...

ПХхахахаа, он тебя задизлайкал, даже вкатыш не хочет быть как я, хпхахахаха))

Удалено 624055

Пользователь

Регистрация: 24.03.2016

Сообщения: 40

Рейтинг: 18

Удалено 624055

Регистрация: 24.03.2016

Сообщения: 40

Рейтинг: 18

img
Dawnbrocker сказал(а):

Есть 2 случая:

Первый случай
Второй случай

 

С первым случаем всё просто и понятно pepecool.png?1592046811.

Но я никак не могу понять PepeBadFeel.png?1598553375, почему во втором случае мы можем обратиться к параметру private , который ограничен только видимостью своего класса GivePLZ.png?1616515136. У нас же не должно быть возможности обратиться к методу Bratishka.png?1619500459. Или метод(функция) вызывает сначала параметр внутри класса, а потом возвращает уже нам "Jane" relaxeat.gif?1631454183?

 

P.S.: 

Локальный мем

 

 

 

Нажмите, чтобы раскрыть...

я потестил что под первым спойлером и у меня не было никакого person name isn`t accessible

haHAA

Пользователь

Регистрация: 25.03.2017

Сообщения: 1125

Рейтинг: 747

haHAA

Регистрация: 25.03.2017

Сообщения: 1125

Рейтинг: 747

img
Удалено 624055 сказал(а):

я потестил что под первым спойлером и у меня не было никакого person name isn`t accessible

Нажмите, чтобы раскрыть...

насколько я понял имеется в виду 

 

 

"просто person.name не сработает, только через getName()"

 

 

А по поводу объявления полей класса прямо в параметрах конструктора - полный кринж

Pudgewerksaw

Пользователь

Регистрация: 06.01.2021

Сообщения: 2425

Рейтинг: 1005

Нарушения: 109

Pudgewerksaw

Регистрация: 06.01.2021

Сообщения: 2425

Рейтинг: 1005

Нарушения: 109

haHAA сказал(а):

насколько я понял имеется в виду 

 

 

"просто person.name не сработает, только через getName()"

 

 

А по поводу объявления полей класса прямо в параметрах конструктора - полный кринж

Нажмите, чтобы раскрыть...

Лучше как в говне, написать в структуре потом полисать файл найти конструктор ещё раз написать все поля в параметры ещё их потом и присваивать. Вот это кринж в 21 веке. 

 

 

haHAA

Пользователь

Регистрация: 25.03.2017

Сообщения: 1125

Рейтинг: 747

haHAA

Регистрация: 25.03.2017

Сообщения: 1125

Рейтинг: 747

img
Pudgewerksaw сказал(а):

Лучше как в говне, написать в структуре потом полисать файл найти конструктор ещё раз написать все поля в параметры ещё их потом и присваивать. Вот это кринж в 21 веке. 

 

 

Нажмите, чтобы раскрыть...

нет лучше сидеть плодить абстрактные фабрики а потом сидеть в миллиарде файлов на каждую функцию ахахха

иди из конструктора (юнити) собирай клонов клеш рояля и дудл жампа ГЕЙм девелопер))

morecore

Пользователь

Регистрация: 19.07.2013

Сообщения: 1121

Рейтинг: 317

morecore

Регистрация: 19.07.2013

Сообщения: 1121

Рейтинг: 317

шта? у тебя есть работа за деньги связанная с кодом но ты не выкупаешь концепцию приватных полей и геттеров?

Pudgewerksaw

Пользователь

Регистрация: 06.01.2021

Сообщения: 2425

Рейтинг: 1005

Нарушения: 109

Pudgewerksaw

Регистрация: 06.01.2021

Сообщения: 2425

Рейтинг: 1005

Нарушения: 109

haHAA сказал(а):

нет лучше сидеть плодить абстрактные фабрики а потом сидеть в миллиарде файлов на каждую функцию ахахха

иди из конструктора (юнити) собирай клонов клеш рояля и дудл жампа ГЕЙм девелопер))

Нажмите, чтобы раскрыть...

Как будто в гоу этого делать не надо, это надо делать везде.

Гоу это тоже самое только ограниченое, и на гоу все эти абстракции не пишут потому что язык такое говно что просто синтаксически это не тянет ты умрешь в попытках написать нормальный код. 

Dawnbrocker

Пользователь

Регистрация: 04.12.2022

Сообщения: 1440

Рейтинг: 1228

Dawnbrocker

Регистрация: 04.12.2022

Сообщения: 1440

Рейтинг: 1228

img
haHAA сказал(а):

насколько я понял имеется в виду 

 

 

"просто person.name не сработает, только через getName()"

 

 

А по поводу объявления полей класса прямо в параметрах конструктора - полный кринж

Нажмите, чтобы раскрыть...

Да вот тоже кринжанул люто. Это типа удобно KEKWait.png?1616515041, а код при этом не читаем HAhaa.png?1616514247

DrZoidberg

Пользователь

Регистрация: 17.01.2017

Сообщения: 1476

Рейтинг: 436

Нарушения: 60

DrZoidberg

Регистрация: 17.01.2017

Сообщения: 1476

Рейтинг: 436

Нарушения: 60

Dawnbrocker сказал(а):

Да вот тоже кринжанул люто. Это типа удобно KEKWait.png?1616515041, а код при этом не читаем HAhaa.png?1616514247

Нажмите, чтобы раскрыть...

Это реально удобно, хз в чем кринж. Избежали лишнего бойлерпринта. В котлине и дарте тоже есть. 

Впрочем, если вдруг, вы слишком тупой консервативный, чтобы освоить нововведения, можно просто не пользоваться и, уверен, что есть правило линтера, которое такое запретит. 

Удалено 624055

Пользователь

Регистрация: 24.03.2016

Сообщения: 40

Рейтинг: 18

Удалено 624055

Регистрация: 24.03.2016

Сообщения: 40

Рейтинг: 18

img
haHAA сказал(а):

насколько я понял имеется в виду 

 

 

"просто person.name не сработает, только через getName()"

 

 

А по поводу объявления полей класса прямо в параметрах конструктора - полный кринж

Нажмите, чтобы раскрыть...

если так то вся тема - нытьё про гетеры???

Александр

Почетный пользователь

Регистрация: 10.08.2013

Сообщения: 5379

Рейтинг: 4235

Александр

Регистрация: 10.08.2013

Сообщения: 5379

Рейтинг: 4235

Dawnbrocker сказал(а):

Есть 2 случая:

Первый случай
Второй случай

 

С первым случаем всё просто и понятно pepecool.png?1592046811.

Но я никак не могу понять PepeBadFeel.png?1598553375, почему во втором случае мы можем обратиться к параметру private , который ограничен только видимостью своего класса GivePLZ.png?1616515136. У нас же не должно быть возможности обратиться к методу Bratishka.png?1619500459. Или метод(функция) вызывает сначала параметр внутри класса, а потом возвращает уже нам "Jane" relaxeat.gif?1631454183?

 

P.S.: 

Локальный мем
Нажмите, чтобы раскрыть...

Впадлу читать чё насрали в теме

Эта конструкция (объявление переменной в конструкторе) идентична объявлению переменной непосредственно в классе, эти два кода абсолютно идентичны и ведут себя соответствующе

И результат вывода метода getName в обоих случаях выдаст тебе имя. Предупреждение, написанное после вызова, указывает на невозможность обращения к приватному полю name, а не паблик методу getName