Тёмный

JAVA 객체 지향 프로그래밍 - 6. static 

생활코딩
Подписаться 348 тыс.
Просмотров 37 тыс.
50% 1

Опубликовано:

 

31 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 48   
@pppqqpppwjd3699
@pppqqpppwjd3699 Год назад
이해에 어려움이 많으신 분이 많은 거 같아. 한마디 남겨봅니다. 가장 쉽게 이해할 수 있는 방법은 "static - 어떤 변화도 허용하지 않는다." 라고 생각하시면 됩니다. 따라서 Class를 복제한 Instance에서도 static이 포함된 구문에서 수정을 시도한다면 그 Instance의 모체인 Class에서도 수정이 되는 것이구요. 이건 대학교 수강신청을 생각하시면 이해가 빠를겁니다. 대학교는 학적시스템에 09시부터 17시까지 시간표가 존재합니다. 이게 클래스구요. 우리는 거기서 자신이 수강할 과목을 선택해서 수강신청을 합니다. 그게 인스턴스가 되겠죠. 그럼 저희의 수강신청 정보가 학적시스템에 기록이 되면서 변화가 생깁니다. 그럼 이건 static이 아닌 정보라는 것이죠. 마지막으로 09시 이전에는 시간표가 없는 데, 어떤 누군가가 해킹을해서(극단적 예시로) 08시 시간표를 만들어버렸습니다. 그럼 학적시스템 자체가 변동이 되겠죠(기록이 아니라). 이게 static인 정보를 인스턴스에서 변화를 주었을 때의 예시입니다. 예가 어렵게 느껴질 수도 있습니다.. 가장 쉬운 방법은 생활코딩님의 냉장고 예시라 생각하며 애초에 추상적인 내용이라 여러번 읽고, 몸으로 느끼시다보면 언젠간 깨닫게 될거예요 즐코딩하세요~
@jhj9398
@jhj9398 3 года назад
ㅋㅋㅋㅋㅋ 처음봤을때는 이해했다고 좋아했는데 다시보니까 뭘 모르는지도 모르는거였네요… 진짜 이렇게 쉽게 설명해주시다니 감사합니다
@선지오
@선지오 3 года назад
첫 번째 들을 때는 정말 1도 이해가 안 되던게 두 번째 보니까 이해 되는게 너무 신기해요 ㅠㅡㅠ!!!! 엄메이징 ~~~~~~~~ 이해하고 나니 정말 쉽게 잘 설명해주셨다는게 느껴집니다.. 감사함뮈다 !
@오징어-j2g
@오징어-j2g 6 месяцев назад
이해 안돼서 스트레스 받은채로 보니까 이해가 될라말라 했는데 다음날에 머리 비우고 보니까 한번에 이해되네요 꿀영상 감사합니다
@배추는펄럭인다
@배추는펄럭인다 3 года назад
항상 잘 듣고있습니다 좋은 강의를 계속 무료로 올려주신다니 너무 감사합니다 !!
@wewwwept
@wewwwept Год назад
강의 너무 좋아요 최고예요... 감사합니다 잘 듣고 있어요
@cho-b2g
@cho-b2g 3 года назад
진짜 이해 전혀 안되던거였는데 이 영상보고 이해가 바로 됐습니다 ㅠㅠ 감사합니다
@PlayKaki
@PlayKaki Год назад
선언할떄 static 을 붙이면 클래스 전용임. 빼면 인스턴스 전용 전강의에서 클래스 : 전시된 햄버거 인스턴스 : 내가 구성바꾼 햄버거 라는 비유를 했는데 인스턴스 에서는 클래스에 있는거 다 쓸 수 있음 햄버거 먹는데 패티 안주면 그게 햄버거임 ? 아니자늠 당연히 다 쓸 수 있어야함 반대로 클래스 에서는 이게 기본구성이니깐 너무 맵거나 그런거는 쓰면 안됨 예를들어 엄청 매운거 좋아하는 사람이 붉닭소스를 햄버거에 넣어 먹었는데 이걸 기본구성으로 만들어 버리면 맵찔이들은 못먹으니깐 근데 기본구성으로 되있는걸 바꿀순 있음 두가지방법이 있는데 1. 그냥 햄버거 가게에서 우리 인제 밀 없어 쌀로 만들꺼임 님들 ㅅㄱ 쌀빵 햄버거 탄생 ( 클래스에서 변경) 2. 소비자들이 애국심이 넘쳐서 우리 밀 수입하지말고 쌀로 빵 만들어 먹자 !! 햄버거 가게는 이 요구를 즉각 반영해라 !! ( 인스턴스 에서 변경)
@페페-x8r
@페페-x8r 4 года назад
클래스에서 여러 독립적인 인스턴스를 생성할 때 모든 인스턴스가 공통적으로 사용해야 하는 값에 대해선 static을 취한다. 반면에 독립적인 인스턴스에서 클래스의 변수나 메소드를 가져와 변동하여 사용할 경우엔 static을 쓰지 않는다. 작성한 메서드 중에서 인스턴스 변수를 사용하지 않는 것에 대해선 static을 고려한다.
@Things2-Think
@Things2-Think 2 года назад
정말 감사합니다~~ 목소리도 나긋나긋하셔서 듣기도 좋아용 ㅎㅎ
@Canthurtme660
@Canthurtme660 2 года назад
두 번째 보니까 드디어 보입니다 ! 눈을 뜬 느낌 !
@laihyunpark6169
@laihyunpark6169 Год назад
정말 좋은 강의였습니다.
@kostralia442
@kostralia442 3 года назад
아ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ 정말 감사합니다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ생명의 은인이세요
@lillfi2ll
@lillfi2ll Год назад
c에서 포인터를 이해하고 있으면 바로 이해되네요 감사
@다자빠뜨려-f8v
@다자빠뜨려-f8v 3 года назад
미쳤다 미쳤어@@ 이해가 쏙쏙 됩니다.
@고양이-o2z
@고양이-o2z 2 года назад
진짜 설명 잘하시네요 도움 많이 됩니다 좋은 영상들 감사합니다
@esthercho1978
@esthercho1978 3 года назад
우와.. static, class, insance 간의 관계가 눈에 딱 들어와요!
@fact5075
@fact5075 3 года назад
Static 은 Class 소속 Static 가 없으면 Instance 소속 Class 로 Instance를 복사해서 만들었을떄, Instance 안에 들어가있는 Static 값을 변경하면 기존에 있는 method,Variable 의 값도 같이 변경된다. Instance 안에 들어가있는 Static 이 없는 Instance method,Variable의 값을 변경할 경우 복제품인 Instance 에만 적용된다. Class 소속에선 Instance를 부를수 없지만, Instance 소속에선 Class,Instance 모두 부를수 있다.
@이재헌-n5w
@이재헌-n5w 4 года назад
와......진짜너무행복해요 감사합니다 선생님......ㅠㅠㅠㅠㅠㅠ
@꿀죽창
@꿀죽창 4 года назад
static사용=클래스로 만 불러온다=인스턴스로는 전부 사용가능 값을 바꿀때 static값의 변화=클래스와 바꾼부분이 연동. 나머진 아님 인스턴스로 선언해야 사용가능한것이 static사용 x static 사용은 바로 클래스이름.~ 로 호출가능
@pondbig8109
@pondbig8109 2 года назад
static 은 클래스 소속 static이 없는 것은 인스턴스 소속이라고 알고 있겠습니다! ClassVAR라는 변수는 클래스에 저장되어 있다. f1에서 ClasVAR의 값을 변경하게 되면 클래스 뿐만 아니라 모든 인스턴스 (f2)의 값도 변한다. 반대로 f1 에서 instanceVar의 값을 바꾸게 되면 f1의 instanceVar 값만 변한다.
@ramram-qs9dn
@ramram-qs9dn 3 года назад
어떤 상황을 만났을때 시뮬레이션을 해보고 어떻게 될지 예측할수 있고, 잘못된 선택을 하지 않을수 있게 된다. ★ STATIC은 클래스소속, STATIC이 없는것은 인스턴스 소속이다 !
@jk-vn5nh
@jk-vn5nh 4 года назад
정말 감사합니다 선생님
@juheean8475
@juheean8475 4 года назад
static을 선언하면 클래스에 소속된게 된다. 매번 이클립스가 알려주는대로만 쓰다가 언제 static을 써야하는지 개념이 바로잡혔습니다. 감사드려요 ㅠ
@성효상-c6p
@성효상-c6p 3 года назад
원본class와 다른 instanc하고도 공유하고 싶은 부분에 static을 붙이면 되는군요!
@yuzerochoi4115
@yuzerochoi4115 4 года назад
선생님 ,,,,, 감사합니당 ㅠㅠㅠㅠ
@finderpath9398
@finderpath9398 4 года назад
static : 클래스의 인스턴스가 여러개 선언(복제)되었을 때, 그 클래스 내부의 변수 또는 메소드 역시 복제될텐데, 클래스와 그 클래스가 복제되어 선언된 인스턴스들이 있다고 할때, 각 객체들이 갖고 있는 변수와 메소드들이 객체들 간에 공유되는지 그렇지 않은지 정해주는 표시. non static은 static 과 non static 모두 호출가능하나, static은 static만 호출가능하다는 것으로 이해되네요. 질문 : 제(인간) 머리로 생각하기에는.. '클래스', '인1', '인2' 이렇게 객체 3개가 있다고 했을 때, 객체들이 공유한 static method가, 처음에 언급한 3개의 객체 중 특정한 객체 예를 들어 '인1' 이라는 객체 안의 non static 변수의 값을 호출하는 것은 가능해보이는데 왜 막아둔걸까요? 다시 말해서 공유된 static method가 특정 객체 내부의 변수를 호출하여 가져와서 공유하며 가지게 될 수 있지 않나라는 뜻입니다. 컴퓨터가 인식하기에는.. 공유된 static method가 무언가를 호출할때는 자신이 속한 각 객체에서 완전히 같은 행위를 해야(공유상태, static한 상태이므로)해서 그런걸까요? 만약 같은 행위를 할 수밖에 없다면 각 객체 내부에서 non static 정보를 가져오게 될텐데 이 값들이 다를 수 있으니.. 그렇게 되면 공유상태가 파괴되어.. 그래서 막아둔 것 같다는 생각입니다. 제대로 이해하고 있나요 생코 선생님?
@뽀로롱-v2z5j
@뽀로롱-v2z5j 10 дней назад
핵심: 그 멤버들의 상태가 static이냐 static이 아니냐 Static : 뚝심있는 놈 Static은 class소속 => 어딜가도 값을 바꿀수 없다. 만약 바꾼다면, 같이 바뀌어야됨. Class Foo의 Static String classVar의 값을 바꾼다면=> instance f1의 Static String classVar의 값도 바뀐다. instance f1의 Static String classVar의 값을 바꾼다면=> Class Foo의 Static String classVar의 값도 바뀐다. Static이 없다 : 뚝심 없는 놈. Static이 없는 멤버변수를 가져왔을 때 instance f1에서 멤버변수를 바꾼다고 classFoo의 값이 바뀌지않는다
@_serif
@_serif Месяц назад
클래스 내 Static 메소드에서는 왜 멤버변수에 접근할 수 없는건가요?? 아무나 설명해주실분 ㅠ
@donaldlee247
@donaldlee247 3 года назад
static이 붙어 있는 것은 class소속 static이 붙어 있지 않는 것은 instance의 소속이다 오케바리
@송정준-j1g
@송정준-j1g 3 года назад
대학 수업보다 훨씬 좋습니다.
@insight-vf9nc
@insight-vf9nc 4 года назад
01:05 05:56 07:32 객체 f1의 static String classVar의 값은 class Foo의 static String classVar의 값을 참조한다. f1의 static String classVar의 값이 변경되면 class Foo의 static String classVar의 값도 변경된다. class Foo의 static String classVar의 값이 변경되면 class Foo를 참조하고 있는 객체 f2의 static String classVar의 값도 변경된다.
@송정준-j1g
@송정준-j1g 3 года назад
진짜 대박이다
@타몽-v1k
@타몽-v1k 3 года назад
static은 클래스의 주소를 가르키고 있고, 인스턴스는 독립된 개체이다.
@Heemang-ryeong
@Heemang-ryeong 11 месяцев назад
2023/11/10 시청 완료
@lim0616123
@lim0616123 3 года назад
static은 전역변수 static이 아닌 건 지역변수 이렇게생각하면될까요?
@만사가귀찮다
@만사가귀찮다 3 года назад
막 탐구심이 넘치는건 아닌데 그건 아닌데 분명히 이해를 하고 넘어가야 쓸 수 있어서 진도 나가는게 느어무 느려용 ..
@soma9977
@soma9977 4 года назад
1. 인스턴스 변수,메서드를 다른 클래스 메서드에 호출하려면 인스턴스화를 해야한다. (클래스명 변수명=new 클래스명();) 2.그렇게 인스턴스화를 해서 출력한 경우, 인스턴스 변수,메서드의 Foo,f1,f2은 연동되어 있지 않기 때문에 f1의 값을 바꾼다고 해서 Foo,f2의 값은 바뀌지 않는다. (but.클래스 변수,메서드의 경우, 연동되어있기 때문에 f1의 값을 바꾸면 주 클래스인 Foo의 값이 바뀌고 그 클래스를 사용하는 f2의 클래스 변수, 메서드의 값또한 바뀌게 된다.)
@jsjsnnjssk9923
@jsjsnnjssk9923 2 года назад
감사합니다 ㅠ
@sonamu3627
@sonamu3627 2 года назад
2022/5/16 시청 완료
@erinlee1075
@erinlee1075 4 года назад
감사합니다.
@seoul_Jin500
@seoul_Jin500 4 года назад
다른 클래스를 기준으로 이야기하면, Foo안의 것들을 가져올때 인스턴스를 만들지 않고 그냥 Foo. 을 사용해서 가져오는 것은 static만 가능하고 instanceVar나 instanceMethod를 사용하려면 , 반드시 Foo f1 = new Foo(); 이렇게 인스턴스를 만들어서 인용하면 f1.instanceVar 나 인스턴스메소드도 가능!....근데.왜?????....이유를 알고싶어요... 얼핏 static은 메모리에 저장한다고 들었는데....이것과 연관이 있어보이네요? 아시는분?
@seoul_Jin500
@seoul_Jin500 4 года назад
1.다른 클래스에서 인스턴스를 만들면서 Foo를 불러오는 순간 Foo의 모든 static과 instance들도 전부 불러와지기 때문에 f1이나 f2로는 Foo의 인스턴스변수. 인스턴스메소드도 사용가능하다. 2.그렇다면, f1이나 f2로 인스턴스를 생성하지 않고 그냥 Foo.instanceMethod();가 안되는 이유는 Foo에서 staticMethod는 메모리에 저장해놓았기 때문에 사용 가능한데, instanceMethod는 메모리에 항시 없기 때문에 Foo클래스를 인스턴스로(예를 들어 f1)불러오지 않는 이상 불러올 데이터가 없다!!!! 그래서 안된다! --메타인지를 사용하여 추론해보았습니다. 1.내가 모르는 것이 무엇인가. 2. 활용할만한 단서(static은 메모리에 저장된다.)가 있는가. 어때요?! 맞나요?!!?! 여기서 한가지 모르는 것은 어떻게 다른 클래스에서 Foo.staticMethod(); 를하면 데이터를 가져오는가 입니다. 어떤 클래스를 작동시킬때 같은 package안에 있는 다른 class들을 같이 실행해서 다른 클래스들의 static값들이 메모리에 저장되어있기 때문일까요???.....ㅜㅜ.....하...이고잉님도 모르실 것 같은데~~~
@persona_2584
@persona_2584 4 года назад
static 붙으면 - 인스턴스들이 class 멤버의 값을 참조한다 - 인스턴스에서 값을 바꾸면 class의 값도 바뀌고 다른 인스턴스들도 바뀐다 안붙으면 - 복제된 (독립된) 멤버이기 때문에 값이 바뀌어도 class멤버에 영향을 주지 않는다
@handsomguymin
@handsomguymin 6 месяцев назад
Instance static Public
@typescripter
@typescripter 3 года назад
와....
@uueng
@uueng 4 года назад
저같은 빡대가리도 이해시켜주시는 영상이네요 굳굳 감사합니다
@96.hongki
@96.hongki 5 лет назад
정말 감사합니다.
Далее
JAVA method - 9. 부록 - static
12:55
Просмотров 12 тыс.
OOP explained like I'm five
10:40
Просмотров 168 тыс.
JAVA1 - 13.4. 자바 문서 보는 법 - 인스턴스
11:27
JAVA 객체 지향 프로그래밍 - 5. 인스턴스
10:29
JAVA1 - 10. 디버거
9:25
Просмотров 46 тыс.
Java - 생성자
10:15
Просмотров 86 тыс.
자바 메모리 구조 뿌시기 [ JVM이란? ]
8:14