=> 툴 : 안드로이드 스튜디오 / 언어 : 자바, 코틀린 => 앱에 해당하는 기능 위주로 익혀서 바로 만들어보기//
<자바>
- 객체지향 언어(절차적이랑 다른 개념) - void : 아무 값이 없다 - 오버 로드 : int add~~~ / double add~~~ : 함수가 이름이 동일한데 이것이 오류가 아니라 add라는 함수(1,2) / (1.5, 3.5) 를 처리하는 경우에 각각 알아서 처리함 - 상속 : Class Animal { / class Cat extends Animal { : animal(부모클래스)의 속성을 모두 받고 자식이 같는 특별한 개념 또한 포함 / 위의 개념을 다 받음 - 오버 라이드 : 함수들은 동일하지만 부모의 것을 자식들이 재정의하여 사용함
<네트워크 지식>
- 동기 : 응답을 받을때까지 다음 함수로 넘어가지 않음 - 비동기 : 함수가 호출만 되면 바로 넘어감(응답은 콜백으로 받음) - 쿠키 : 변수를 저장하는 개념 / 클라이언트의 특정 부분, 특정 위치에 저장(파일로 남음) / 쿠키 지우기 : 임시 저장본 날리기 - Session : 변수가 서버의 위치에 저장 / 특정 시간 이후에는 값을 지움(로그인은 나갔다 들어오면 없어짐) - VOIP(Voice over IP) : 음성을 데이터화 한다 (ip에 의해서 전달 가능 / 데이터를 이용하여 다시 음성으로 전달) ex) 카카오톡 전화하기 - NAT(Network Address Translate) : 모든 서버가 퍼블릭 아이디를 갖지는 않음 / 서버에는 프라이빗 아이디를 가지고 있는데 돈을 절약하고 보안을 위해 사용 / 접속을 할 수 있는 방법이 필요함 - Hash : 주민번호 같은 보호해야할 것을 변조하여 저장할 수 있게 함 / 이 값이 맞는지만 확인하고 끝남
<안드로이드 스튜디오 용어>
- Build : 하나의 언어를 apk로 만들어지는 과정 - Compile : 우리의 언어를 컴퓨터가 알아들을 수 있는 언어로 - Layout : .xml에서 구성 = 배치도(버튼, 박스, 지도...) - Activity : 안드로이드 앱은 결국 액티비티 = 화면 자체를 말함 / layout을 품고 있다 - Event : 버튼을 누른다, 어떤 함수를 실행해라 (기능) - App : 주로 여러개의 activity들의 합(compile)
< 화면 레이아웃 구성의 두가지 방법 >
- Linear Layout : 순차적으로 배치 (가로 혹은 세로), 방향을 잡아줌, 배치가 됨 - Relative Layout : 하나를 중심으로 어떤것의 위에 아래, 옆에(상대적으로 배치됨)
< 실행하기 >
1. 안드로이드 스튜디오 다운 받기 2. 가상의 화면 만들기(안드로이드 폰 없으니까 컴터롱 / 나중에는 화면에도 해봐야함) 3. 샘플 앱 실행 해보기(알아서 깔림)
1-5) 연산자 우선순위 : 정처기 필기때는 조금 중요하지만 실제로 코딩에서는 외울 필요가 없다고 함..
2) 상속
2-1) 상속의 필요성 : (a)의 경우라면 클래스마다 중복된 내용을 두어야 하고, 이와 같은 필드나 메서드를 수정할 때는 3개클래스 모두에서 해야하지만 이는 중복된 코드를 발생시키고, 유지 보수하기 어렵게 만든다. 따라서, 중복되는 코드를 클래스마다 두기보다는 한곳으로 통합해서 별도의 클래스로 두면 코드도 간결하고 관리하기 편하다
a) 상속을 사용하기 전
b) 상속을 적용한 후
2-2) 상속이란?
- 자식 클래스는 부모 클래스에서 물려받은 멤버를 그대로 사용하거나 변경할 수 있고 새로운 멤버를 추가할 수 이싿.
- 따라서 자식 클래스는 대체로 부모 클래스보다 속성이나 동작이 많다.
2-3) 상속의 선언
: 자식 클래스는 부모 클래스로부터 확장된다는 의미로 extneds 키워드를 사용해 상속 관계를 선언한다.
- 다중 상속은 안됨(한번에 두개 이상 나열은 안됨) 하지만 인터페이스를 통하여 다중 상속의 효과를 얻을 수 있다고도 함
2-4) 메서드 오버라이딩
: 부모클래스의 메서드가 자식 클래스에 적합하지 않은다면 자식 클래스는 물려받은 메서드를 자신에게 맞도록 수정할 수 있는데, 이른 메서드 오버라이딩이라고 한다.(오버로딩 개념과 비교해서 알아두기!!)
- 규칙
부모 클래스의 메서드와 동일한 시그니처르 사용한다(심지어 반환 타입까지 동일해야 한다)
부모 클래스의 메서드보다 접근 범위를 더 좁게 수정할 수 없다
추가적인 예외가 발생할 수 있음을 나타낼 수 없다
-오버라이딩 불가 항목
private 메서드 : 부모 클래스 전용이므로 자식 클래스에 상속되지 않는다.
정적 메서드 : 클래스 소속이므로 자식 클래스가 오버라이딩할 수 없다.
final 메서드 : final 메서드는 더 이상 수정될 수 없으므로 자식 클래스가 오버라이딩 할 수 없다.