라벨이 독학인 게시물 표시

5/7 생활코딩 JAVA - 오버로딩, 메소드 시그니처, 접근제어자, 추상, final, 인터페이스, 다형성, 예외처리, Object, equals, 상수/enum

5/7 공부내용 커리큘럼: 오버로딩(복습) ~ 상수, Enum - 원래 오늘 꼭 끝까지 정주행하고 싶었는데 input량이 너무 많다. 무리해서라도 들으라고 하면 들을지 모르겠지만, 전혀 내게 도움이 될 것 같지 않다. 내일은 마무리 지을 수 있을 것같다. - 여태 배우면서 끄덕끄덕하고 다 이해되던 것들이 많았지만, 지금은 좀 복잡한게 많다. 오늘 복습 노트 제대로 읽어봐야할 것 같다. 1) 오버로딩이란? 오버로딩 함수를 정의 하는 법?  자바는 매개변수 타입이나 갯수가 다르다면 다른 함수로 인식한다. 메소드 이름이 같지만 input parameter에 따라 메소드가 다르게 동작하는 방식을 오버로딩이라고 한다. 왜 오버로딩을 쓸까? 매번 같은 취지의 함수를 새로운 이름으로 만들어주면 사용자 입장에선 헷갈리고 코드 양은 많아진다.  만약 하나의 메소드가 매개변수의 속성에 따라 알맞는 메소드를 실행시켜줄 수 있으면 이 문제를 해결해줄 수 있기 때문에 유용하다. 오버로딩할 때 주의점은 매개변수의 이름과 리턴값(형식)은 반드시 같아야 하며 매개변수는 달라야한다는 것이다. (매개변수의 이름은 상관 없다) 2) 메소드의 시그니처란? 메소드의 이름, 매개변수의 형식, 리턴타입 public static void A(int a); {     System.out.println("Hello World!") } 에서 A() : 메소드의 이름 / int a : 매개변수의 형식 / void : 리턴타입 3) 접근제어자의 효용?  접근제어자는 자기 자신이 아닌 다른 클래스에서 자신의 멤버로 접근할 수 있는 '공적인 접근'과 자신 클래스만이 할 수 있는 '사적인 접근'을 나누는 개념이다. 왜 나눌까?  만약 공적인 자원(멤버)를 아무나 침범할 수 있다면 자원에 문제가 생겼을 때 해당 자원에 엑세스 하는 모든 주체들이 혼란스러워질 수 있거나 그 자원의 값이 달라져서 통일성이 없어질 수 있다....

5/1 생활코딩 JAVA - 상수, Switch, for

5.1 생활코딩 자바 수업 내용 수강 커리큘럼 : 언어소개 ~ 메소드까지 1)  상수란? 변하지 않는 값을 의미한다. 크게 보면 변수와 상수가 있는데, 변수는 변하는 값, 상수는 변하지 않는 값이다. 2) 데이터 타입 중 ( byte, short, int, long Type) byte와 short에 int 상수를 써도 되는 이유는 무엇인가? 위에 나열한 데이터는 순서대로 담을 수 있는 크기와 범위가 확장된다. 적은 데이터는 큰 데이터 컨테이너로 이동이 가능하지만, 큰 데이터가 작은 데이터 컨테이너로는 이동할 수 없다. 만약 2183749라는 값을 byte 타입에 넣는다고 한다면 최대 128까지만 표현할 수 있기 때문에 2183749-128만큼의 손실이 발생하기 때문이다. VR 파일럿 때 Userindex가 long으로는 담을 수 없는 큰 수였다. 이 때문에 long long으로 정의해주었어야 하는데 long으로 정의한 바람에 데이터 손실이 일어났고, 결국 모든 유저가 같은 유저번호를 갖게 된 것과 같다.   3) 형 변환, 자동 형 변환이 나는 이유? 자동 형변환이 안 될때는? 2번에서 언급한 것처럼 표현범위가 좁은 데이터가 큰 범위의 데이터로 이동한다면 유저의 편의를 위해 자동으로 형 변환이 되는 경우가 있다. 만약 이것이 안된다면 아래와 같이 형(Type)을 지정해주면 된다. float a = 1F; (1은 정수인데 뒤에 F를 붙여 float으로 형 변환을 시켜주었다.) 4) Switch 문? if 절과 역할이 비슷하다. Parameter 번호부터 이하 case를 모두 출력한다. 아래의 경우 hi, bye를 모두 출력하며 Switch(2)로 바꾸면 bye만 출력한다. Switch(1): case 1: System.out.println("hi"); case 2: System.out.println("bye"); 어떤 값을 받는지에 따라 실행할 코드를 case별로 분리...