묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 기본편
super-생성자 강의 질문드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.ClassA에 매개변수가 없기 때문에 명시적으로 호출하지 않아도 자동으로 호출된다고 하셨는데, 그렇다면 아래 코드에서도 명시적으로 부모 클래스를 호출하지 않아도 되지 않을까 싶어서 문의 글 남겨드립니다! 컴파일 진행 시 정상 작동되고, 생각해 보아도 왠지 필요 없을 것 같다고 생각이 들어서 질문 글 한 번 남겨드립니다! public class ClassB extends ClassA { public ClassB(int a) { this(a, 0); System.out.println("ClassB 생성자 a = " + a); } public ClassB(int a, int b) { //super(); <-생략 가능하지 않나요? System.out.println("ClassB 생성자 a = " + a + ", ClassB 생성자 b = " + b); } }
-
미해결Python 입문자를 위한 강의
강의수강 완료하였는데 진도율이 100%가 안됩니다
강의 수강을 완료하였는데 나의 진도율이 98%에 머물러 있습니다100%가 안되는 이유가 궁금합니다
-
미해결김영한의 실전 자바 - 중급 2편
List.of 질문
안녕하세요.Arrays.asList()는 ArrayList를 반환하는 걸 확인했는데List.of()는 결과적으로 new ListN<>(tmp, false); 다음과 같은 ListN 객체를 반환하던데 이게 어떤 것인지 궁금합니다.List 구현체로 알고 있으면 될까요 ?
-
미해결김영한의 실전 자바 - 중급 2편
Set문의
안녕하세요.Set관련 2가지 질문드립니다.1. 문제풀이에서 보면 Set의 내용을 출력할 때 for-each문으로 Set의 내용을 출력하였는데, 기본적인 인덱스 접근은 아닐텐데 어떻게 for-each문으로 값을 찾아서 출력이 가능한 걸까요 ?(강의에 나온대로 hashIndex를 활용한 접근이라면 어느 index에 매핑될 지 모르니 내부에 가지고 있는 배열의 capacity만큼 다 돌아야 할 거 같아서요. 그렇다면 배열의 capacity는 default인지 아닐지 모르는데 이걸 일일히 확인하고 for문을 돌린다는 것도 이상하고요.)LinkedList 때도 문의 드린 건데 Set도 보면 toString을 따로 구현체들이 오버라이딩 하고 있지 않고 set.toString()을 찍어봐도 object에서 선언한 toString()을 가리키던데 어떻게 다음과 같이 출력이 될까요 ? System.out.println(set);[20, 10, 30]아래 질문헀던 건데 답변을 못 받아서 재질문드립니다.HashSet의 toString 코드를 보다 문의사항이 있어 질문합니다. @Override public String toString() { return "MyHashSetV2{" + "buckets=" + Arrays.toString(buckets) + ", size=" + size + ", capacity=" + capacity + '}'; }다음과 같이 되어 있고 출력을MyHashSetV2{buckets=[[Member{id='hi'}, Member{id='JPA'}], [], [], [], [], [], [Member{id='spring'}], [], [], [Member{id='java'}]], size=4, capacity=10} 이렇게 하니까 Arrays.toString(buckets) 부분이[[Member{id='hi'}, Member{id='JPA'}], [], [], [], [], [], [Member{id='spring'}], [], [], [Member{id='java'}]]이 부분일텐데 따라 들어가면 toString 오버라이딩 된 형태가 toString(Object[] a) {다음과 같고 실제 스트링으로 만드는 코드는StringBuilder b = new StringBuilder(); b.append('['); for (int i = 0; ; i++) { b.append(String.valueOf(a[i]));이거인데요.여기서 말하는 a[i]는 LinkedList<Object>[] set의 각각의 인덱스에 위치한 LinkedList<Object> 일텐데 LinkedList나 상위의 List를 타고 들어가봐도 따로 toString 메서드를 살펴볼 수 없습니다. String.valueOf(LinkedList)가 어떻게 동작하는건가요 ? 출력물 보면 각 LinkedList안에 객체로 들어간 member의 toString을 출력하는 거 같기는 한데 LinkedList를 순차척으로 도는 코드를 확인 못하겠습니다.감사합니다.
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
다른 project location 설정했을때 프로젝트 찾는 방법
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]여기에 질문 내용을 남겨주세요. java-start 파일 선택후 project location 칸에 ~\Java\java-start 로 지정되어 있는데 이대로 하면 다음 에러가 뜹니다Directory 'C:/Users/yeon/Java/java-start' is already taken by the project 'java-start'. Please choose another location선생님과 같이 한 것 같은데 왜 이렇게 뜰까요? 그래서 상위폴더인 Java를 선택했는데 인텔리제이에서 프로젝트를 못 찾겠습니다.수업에서 Java-start > src 누르면 쭉 뜨는데 Main 밖에 안 뜹니다.코드를 어떻게 찾을 수 있나요??
-
미해결김영한의 실전 자바 - 중급 2편
Set toString 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
해결됨파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
Quotas 리스트에 아무것도 나오지 않습니다.
계정을 Paid 계정으로 신용카드로 인증하여 업그레이드 하였는데 계정은 Azure 구독1 으로 설정되어있습니다.설정에 들어가서 기본 구독 필터를 확인해보니 Azure 구독1으로 설정 되어있고 변경 할 수 없게 고정 값으로 되어있습니다.감사합니다...
-
해결됨김영한의 실전 자바 - 기본편
[배열 도입 - 리펙토링] 향상된 for문질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요. 🙂 ClassStart5 클래스에서 향샹된 for문으로 만 사용하려고 하는데 Students s와 같은 변수를 담아둔다고 헀을 때 아래 코드처럼 해야 실행이되더라구요, package class1; public class ClassStart5 { private static int i; public static void main(String[] args) { Student student1 = new Student(); // 학생을 담아둘 수 있는 변수를 선언 student1.name = "학생1"; student1.age = 15; student1.grade = 90; Student student2 = new Student(); student2.name = "학생2"; student2.age = 16; student2.grade = 80; Student[] students = {student1, student2}; for (Student student : students) { Student s= students[i]; System.out.println("이름: " + s.name+ " 나이: " + s.age + " 성적:" + s.grade); } } }다만 자꾸 컴파일 에러가 나서 확인해보니 위의 private static int i; 코드 때문인거 같은데 별도 선언을 해줘야하는 이유를 정확히 알수 있을까요? s 변수에 담아두지 않고 아래처럼 해도 int i를 선언해야 하는 거 같습니다.코딩자체가 입문이라 장황하게 문의드린 점 양해부탁드리며 답변 기다리겠습니다. 감사합니다! Student[] students = {student1, student2}; for (Student student : students) { System.out.println("이름: " + students[i].name+ " 나이: " + students[i].age + " 성적:" + students[i].grade);
-
미해결김영한의 실전 자바 - 중급 2편
LinkedList toString 질문
안녕하세요.HashSet의 toString 코드를 보다 문의사항이 있어 질문합니다. @Override public String toString() { return "MyHashSetV2{" + "buckets=" + Arrays.toString(buckets) + ", size=" + size + ", capacity=" + capacity + '}'; }다음과 같이 되어 있고 출력을 MyHashSetV2{buckets=[[Member{id='hi'}, Member{id='JPA'}], [], [], [], [], [], [Member{id='spring'}], [], [], [Member{id='java'}]], size=4, capacity=10} 이렇게 하니까 Arrays.toString(buckets) 부분이 [[Member{id='hi'}, Member{id='JPA'}], [], [], [], [], [], [Member{id='spring'}], [], [], [Member{id='java'}]]이 부분일텐데 따라 들어가면 toString 오버라이딩 된 형태가 toString(Object[] a) {다음과 같고 실제 스트링으로 만드는 코드는 StringBuilder b = new StringBuilder(); b.append('['); for (int i = 0; ; i++) { b.append(String.valueOf(a[i]));이거인데요.여기서 말하는 a[i]는 LinkedList<Object>[] set의 각각의 인덱스에 위치한 LinkedList<Object> 일텐데 LinkedList나 상위의 List를 타고 들어가봐도 따로 toString 메서드를 살펴볼 수 없습니다. String.valueOf(LinkedList)가 어떻게 동작하는건가요 ? 출력물 보면 각 LinkedList안에 객체로 들어간 member의 toString을 출력하는 거 같기는 한데 LinkedList를 순차척으로 도는 코드를 확인 못하겠습니다.감사합니다.
-
해결됨스프링 핵심 원리 - 기본편
NoUniqueBeanDefinitionException, UnsatisfiedDependencyException 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 김영한님의 스프링 강의를 듣던 도중 해결되지 않는 문제가 생겨 글을 남깁니다.전체 Test를 돌리던 중에 CoreApplicationTests에서 java.lang.IllegalStateException: Failed to load ApplicationContext for [MergedContextConfiguration@2cc03cd1 testClass = hello.core.CoreApplicationTests, locations = [], classes = [hello.core.CoreApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@b91d8c4, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@4fd4cae3, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@2baa8d82, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@142eef62, org.springframework.boot.test.context.SpringBootTestAnnotation@4ec067d1], contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]이라는 오류가 발생했습니다. 그래서 원인을 찾기 위해 로그를 읽어내려가던 중Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [/Users/sin-eunsu/study/core/out/production/classes/hello/core/member/MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository UnsatisfiedDependencyException, NoUniqueBeanDefinitionException때문에 오류가 생겼다는 로그를 발견했습니다. 해당 오류를 해결하기 위해 memberServiceImpl과 orderServiceImpl에 있는 Component어노테이션을 비활성화 처리를 하면 CoreApplicationTests를 제외한 다른 테스트에서 오류가 생깁니다.해당 로그들에 따르면 memoryMemberRepository, memberRepository 스프링 빈이 해당 테스트에서 2개가 발견되어 오류가 생겼다는 뜻같은데 어떻게하면 해결할 수 있나요?
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
MacOS m3 인텔리제이 설치
intel로 설치하면 아예 앱 자체가 뜨지 않아 밑에 Apple Silicon으로 설치하니 앱은 뜨지만 이런 창이 생겨 설치를 못하고있습니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
21버전 다운이 안됩니다. Select Home Directory for JDK오류
[질문 내용]21버전을 다운받으려고 하는데 어떤 디렉터리를 선택해도 안된다고 나와서 설치를 못하고 있습니다.. 어떻게 해야할까요??
-
해결됨스프링 핵심 원리 - 기본편
인터페이스 타입 변수에 인터페이스가 담길 수 있나요?
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); @Test @DisplayName("애플리케이션 빈 출력하기") void findApplicationBean(){ String[] beanDefinitionNames = ac.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { // 이부분 질문 BeanDefinition beanDefinition = ac.getBeanDefinition(beanDefinitionName); //이하 생략.. } }스프링 빈 중에서 애플리케이션 빈만 출력하는 예제입니다 BeanDefinition beanDefinition = ac.getBeanDefinition(beanDefinitionName); 위 코드에서 변수 beanDefinition 의 타입인 BeanDefinition는 인터페이스니까 ac.getBeanDefinition(beanDefinitionName)의 리턴 타입이 BeanDefinition의 구현체일 줄 알았는데 매서드를 따라가보니 제일 상위에서 map.get()이 리턴되는데 그 값이 구현체가 아닌 BeanDefinition인터페이스 자체가 리턴되더라구요 Map<String, BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<>(256);BeanDefinition bd = beanDefinitionMap.get(String beanName)bd 가 리턴되게 되어있음 즉 BeanDefinition 인터페이스 타입인 bd가 메서드를 타고 내려오면서 질문한 부분인BeanDefinition beanDefinition 에 담기게 되는 걸로 확인이 되었는데인터페이스에 구현체가 아닌 인터페이스가 담길 수 있나요? 아니면 제가 뭔가 잘못 알고있거나 잘못 확인한 걸까요?
-
미해결김영한의 실전 자바 - 중급 1편
intValue를 통한 언박싱과 래퍼 클래스의 toString 과 관련한 질문입니다.
우선 전체적인 질문부터 말씀드리면 래퍼클래스를 언박싱할땐 기본형을 꺼내고 출력시엔 무조건 문자형으로 출력하게 되는걸까요? 기본형을 박싱하게 되면 valueOf를 사용하게 되는데 결국 괄호 안의 객체를 String 객체로 생성하는거잖아요...?언박싱은 래퍼 클래스에 들어있는 기본형 값을 다시 꺼내는 메서드인데 그럼 이 메서드를 사용하면 int형을 꺼내게 되는거고 또 출력할 땐 이것과 다르게 재정의 된 toString이 작동해서 숫자가 아닌 문자형 숫자로 출력하게 되는건가요?=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결김영한의 실전 자바 - 중급 2편
생성자 질문
안녕하세요.MyHashSetV1()에서 작성한 코드를 중복으로 작성하지 않기 위해 MyHashSetV1(int capacity)에는 기본 생성자를 바디의 최상단이 아닌 곳에서 선언했더니 에러가 나는데, 이게 예전에도 안된다고 설명은 해주셨는데 왜 안되는지가 문득 궁금하네요.설명 부탁드립니다.감사합니다.public MyHashSetV1(int capacity){ this.capacity = capacity; this(); }
-
미해결김영한의 실전 자바 - 중급 2편
7강 HashAndEqualsMain3 질문
안녕하세요,여러 번 이해하려 해도 기초가 부족해 쉽게 이해되지 않아 질문을 남깁니다 ㅠㅠ // Member 클래스에서 equals() 오버라이딩 Member m1 = new Member("A"); Member m2 = new Member("A"); // m1.equals(m2) = trueHashAndEqualsMain3 수업 중 Member 클래스에서 새로 정의한 equals() 메서드를 통해 참조값이 다른 두 객체 m1.equals(m2) = true 를 알 수 있었습니다. MyHashSetV2 에서 정의한 add() 메서드에서는 중복을 허용하지 않기 위해 LinkedList.contain() 메서드를 사용해서 안에 들어있는 내용의 동등성을 비교하고 있습니다.public boolean add(Object value) { int hashIndex = hashIndex(value); LinkedList<Object> bucket = buckets[hashIndex]; if (bucket.contains(value)) { return false; bucket.add(value); size++; return true; } equals() 를 재정의 하지 않은 MemberOnlyHash 를 이용한 HashAndEqualsMain2 수업에서는 m1 과 m2 가 Objects.equal() 로 다른 참조값을 비교하게 되어 add() 에서 중복을 검증할 수 없었고 MyHashSetV2.add() 를 통과해 같은 인덱스에 중복된 값이 들어가게 되었습니다. HashAndEqualsMain3 수업에서는 equals() 를 재정의한 Member 객체를 쓰고 있는데 m1 을 LinkedList 에 add() 로 추가한 후 m2 를 추가하는 과정에서 LinkedList.contains() 로 중복이 걸러져 m2 는 추가되지 않는것을 확인하게 되었습니다. 질문 : equals() 를 재정의 하며 Member 객체끼리 비교는 가능하게 되었는데 어떻게 Member 에서 재정의한 equals() 가 LinkedList.contains() 의 값에 영향을 줄 수 있는지 궁금합니다.Member 에서만 재정의한 메서드가 이미 LinkedList bucket 에 들어있는 "A" 라는 값과 동등성 검사를 할 때 영향을 끼치는 것 같은데 매개변수의 타입에서 재정의를 하는것이 LinkedList.contains() 에 영향을 미칠 수 있나요?혹은 영한님이 MyHashSetV2Main2 수업때 언급하신 equals() 사용처에 짧게 나온 아래 코드와 같은 동작 원리일까요?public boolean contains(Object searchValue) { int hashIndex = hashIndex(searchValue); LinkedList<Object> bucket = buckets[hashIndex]; for (Object object : bucket) { if (object.equals(searchValue)) { return true; } } return false; } 이해가 잘 되지 않아 질문도 뒤죽박죽인듯 해 걱정입니다. ㅠㅠ잘못 이해한 부분이 있다면 따끔한 지적 부탁드립니다. 항상 강의 잘 보고 있습니다!
-
미해결김영한의 실전 자바 - 중급 1편
내부 클래스 질문있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 제가 현재 군인이여서 웹 IDE로 공부를 하고 있는데내부 클래스 문제 중에 바깥 클래스.내부 클래스 형식으로 객체를 생성하는 것이 있는데 제가 사용하는 IDE에서는 바깥 클래스. 부분을 패키지가 아니라며 컴파일 오류가 나는데 자바 버전이 낮아서 발생하는 문제일까요?
-
해결됨김영한의 실전 자바 - 중급 2편
HashMap .values() 메서드
안녕하세요. HashMap에서 values 메서드는 인터페이스를 반환하는데 Collection 인터페이스를 익명으로 구현 후 반환하나요? 아님 인터페이스 하위에 있는 구현 객체를 생성 후 반환하나요? 아님 크게 중요하지 않는 것인지,,HashMap에서 values 메서드를 보니 아래와 같이 되어 있더라고요.public Collection<V> values() { Collection<V> vs = values; if (vs == null) { vs = new Values(); values = vs; } return vs; } 감사합니다.
-
미해결김영한의 실전 자바 - 중급 2편
LinkedList 구현 시 질문
안녕하세요.LinkedList 구현 시 질문이 있어 글 남깁니다.기능 구현 관련된 건 아니고 제네릭 타입으로 변환 과정에서 의문이 가는게 있어서요.remove method 구현시에 제네릭 타입 전에는 다음과 같이 removeNode.item = removeNode.next = null; 라고 작성했거든요 ?어차피 둘 다 null일테니 ... 근데 이건 따로 에러가 안나고 제네릭 타입으로 변환하고 나서는 에러가 나네요 ? 확인 부탁드립니다.public Object remove(int index){ Node removeNode = getNode(index); Object removedItem = removeNode.item; if(index == 0){ first = removeNode.next; } else{ Node prevNode = getNode(index - 1); prevNode.next = removeNode.next; } /*removeNode.item = removeNode.next = null;*/ /*Node prevNode = getNode(index - 1); prevNode.next = removeNode.next;*/ removeNode.item = removeNode.next = null; size--; return removedItem; }public E remove(int index){ Node<E> removeNode = getNode(index); E removedItem = removeNode.item; if(index == 0){ first = removeNode.next; } else{ Node<E> prevNode = getNode(index - 1); prevNode.next = removeNode.next; } /*removeNode.item = removeNode.next = null;*/ /*Node prevNode = getNode(index - 1); prevNode.next = removeNode.next;*/ removeNode.item = removeNode.next = null; //이게 왜 에러일까요 ? 어차피 둘 다 null인 건 마찬가지인데요. size--; return removedItem; }
-
미해결김영한의 실전 자바 - 중급 2편
Getter 와 setter 관련 질문
강의 늘 잘보고 있습니다. 다름이아니고. 제가 중급 1편까지 자바로 하다가 제목표인 안드로이드 앱 개발을 위해서 중급 2편은 코틀린으로 해보고 있습니다. 코틀린 문법을 찾아보면서 하는중인데 코틀린에는 getter와 setter가 없더라고요. 그래서 변수에 직접 접근을해서 set과 get을 하고있습니다(dogHospital.animal = dog 이런식으로요.) 이렇게 코틀린은 그냥 변수에 직접 접근하는 수밖에 없는지 궁금하구요. 또하나 의문은 자바에서 캡슐화를 위해 필드를 private으로 하고 getter setter로 변수에 접근을 하는데 getter와 setter가 어차피 public 이면 캡슐화에 의미가 있는지 궁금합니다. 현업에서는 어떻게 쓰나요??