상속(Inheritance)

 

 

상속(Inheritance)이란 부모 클래스에 있는 메소드나 변수 등을 자식 클래스가 물려받는 것을 말한다.
즉 자식 클래스는 부모 클래스에 있는 메소드나 변수 등을 재구성(오버라이딩)하여 사용한다.

하지만 부모 클래스는 자식 클래스에 있는 메소드나 변수를 사용할 수 없다.

 

 

 

1. private인 메소드나 변수는 절대 불가하며 나머지 접근 제어자는 상황에 따라 다르다.

어떤 상황에 접근 제어자를 사용해야 할지 알고 싶다면

2020/09/14 - [대외 활동/CADI(개발A 보충스터디)] - java 접근 제어자(private,protected,default,public)

 

java 접근 제어자(private,protected,default,public)

접근 제어자(access modifier) 외부에 대한 접근을 제어하는 문법을 접근 제어자(access modifier)라고 한다. 보통 변수나 함수, 클래스앞에 접근 제어자를 붙이고 접근 허용 범위를 관리한다. 접근 제어��

dev-seungwon.tistory.com

 

 

2.자식 클래스가 부모 클래스를 상속받기 위해서는 extends를 사용해야 한다.

 

 

public class Parent{
	private int a; // Child 에서 호출 불가
	protected int b; //Child 에서 호출 가능
    public String naming(){
    System.out.println("부모");
    }
}

public class Child extends Parent{
	System.out.println(b); //Parent 변수 사용 가능
	public String naming(){
    System.out.println("자식");
    } //오버라이딩
}

 

 

 

 

위 코드와 같이 자식 클래스가 부모 클래스에 있는 메소드를 재정의하는 것은 오버라이딩(Overriding)이라고 한다.

오버라이딩에 대한 내용은

2020/09/06 - [대외 활동/CADI(개발A 보충스터디)] - 오버라이딩 vs 오버로딩 비교 & 정리

 

오버라이딩 vs 오버로딩 비교 & 정리

오버라이딩 vs 오버로딩 비교 & 정리 오버라이딩과 오버로딩의 차이에 대해 알아보자! 오버로딩(Overloading) 메소드 이름은 같지만 매개변수의 자료형이나 개수가 다른 경우를 오버로딩이라고

dev-seungwon.tistory.com

 

 

다형성(Polymorphism)

 

 

 

이러한 오버라이딩은 다형성(Polymorphism)과 연관이 있다.
다형성은 같은 이름의 메소드가 다양한 결과를 나타낼 수 있다는 특징이 있다.
자식 클래스에 재정의해서 사용할 수 있기 때문에 naming()메소드는 부모와 자식에서의 사용이 다르다.  
또한 클래스를 인스턴스화 하여 부모나 자식을 참조하는 객체를 만들어 다형성을 나타낼 수도 있다.

 

public class Main(){
	public static void main(String []args){
 		 Parent person = new Child(); 
 		 person.naming(); //Child 클래스에 있는 내용이 나옴
    }
 }

 

 

안드로이드 생명주기

 

 

 

 

생명 주기 콜백 메소드 - 액티비티가 변할 때마다 약속된 메소드를 호출한다.

 

 

onCreate() 


액티비티가 생성되면 호출된다. 생성주기에서 가장 필수적인 요소 
onCreate()에서는 특별하게 UI 생성 시 ViewGroup을 통해
setContentView로 전달하여 레이아웃을 사용한다.

 

 



onStart()


액티비티가 시작되면 호출된다. onResume()으로 가기 전 단계이며 사용자에게 전달되기 직전에 나타난다.

 

 

 

 

 

onResume()

사용자에게 이 액티비티가 focus되고 화면이 보여지는 단계이다.

 

 

 

 

onPause()

다른 액티비티가 호출될 때 나타난다. 이 액티비티가 focus 되지 않았지만 아직 살아있는 단계이다.

 

 

 

 

onStop()

화면에서 전부 가려지고 다른 액티비티가 나타날때 호출된다. onPause()와의 차이는 시간이 오래 걸리면 onStop()으로 넘어온다.

 

 

 

 

onDestroy()

 

액티비티가 완전히 없어질 때를 말한다. 메모리 확보를 위해 메모리 또한 없앤다.

새로워진 안드로이드10 !!

 

구글에서는 안드로이드 파이(9)버전에서 다음 버전인 안드로이드 Q 버전으로 만들지 않았다. 원래 알파벳 순으로 P다음 Q의 차례이다. 하지만 비영어권 국가에 대한 배려와 각 국가마다 발음이 다르다는 이유로 더 이상 디저트 이름으로 네이밍하지 않겠다고 하였다.

 

안드로이드9 vs 안드로이드10 비교 

 

 

안드로이드 9(파이)는 2018년 8월 6일에 출시

안드로이드 10은 2019년 9월 3일에 출시

 

 


 

 

1. 제스처 기능 변화

 

 제스처 기능을 설정하고 싶다면  설정 -> 디스플레이 -> 네비게이션 바를 통해 변경할 수 있다.

 

 

 

 

 

9(파이) 버전에서는 이러한 형태의 네비게이션 바가 아래로 숨겨져 있어서 화면이 더 커 보이고 편리하게 사용하라는 목적으로 만들어졌다. 하지만 왼쪽에 뒤로가기 버튼이 고정되어있기 때문에 원래 위치와 달라서 불편했다. 또한 항상 위로 올리기 때문에 삼성페이를 사용하는 분들은 다소 번거롭다.

 

 

 

 


 

 

 

안드로이드 10버전에서는 안드로이드 9(파이)버전에서 불편했던 제스처 기능이 업데이트 되고 새롭게 변화되었다.

우선 아래에서와 같이 버튼 순서도 고를 수 있고 

 

 

화면 제스처를 선택했을 때 

 

 

 

 

 

 

옵션 더보기를 누르면 9버전인 아래에서 위로, 새롭게 추가된 여러 방향으로 와 제스처 민감도가 있다.

여러 방향으로는 홈 화면 하단에서 위로 올리면 홈으로 가게되고 뒤로가기는 왼쪽으로 밀기, 등 실생활에 사용되기 쉽게 만들었다. 

제스처 민감도를 통해 터치 인식되는 민감도를 조절할 수 있다.

 

 

 


 

2. 야간모드 vs 다크모드

 

설정 -> 디스플레이 -> 다크모드

안드로이드 9 야간모드에서 10 다크모드로 변경된 점은 크게 두 가지가 있다.

 

배경에 적용, 다크모드 강제 적용(다른 앱에서도 다크모드 사용 가능)

 

 

 

 

위에 노티바를 내린 후 다크 모드를 누른다.

 

 

 

 

배경화면에 적용을 누르게 되면 폰 배경이 전체적으로 어둡게 된다.(눈 보호 목적)

 

 

 

추가기능 : 설정 -> 개발자 옵션 ->다크모드 강제 적용을 누르게 되면 다른 앱들도 다크모드를 적용할 수 있다!!

 

 


 

3.한손 조작모드 Upgrade!!

 

 

 

 

 

 

안드로이드 9(파이)에서도 한손 모드가 적용이 되었다. 하지만 안드로이드 10에서는 좀 더 불편하고 까다로운 부분들을 개선하였다. 기존 방식에서는 <하단의 모서리를 대각선 방향으로 위로 밀어 올린다> <홈 버튼을 3번 누른다> 이 방법으로 실행되었다. 하지만 이 방법이 인식하는 과정에서 불편함을 해결하고자 이러한 형태로 바뀌었다.

 

 


 

4. Edge Lighting 기능 효과 추가!!

 

 

안드로이드 9 -> 10 업데이트 과정에서 엣지 스크린은 Edge Lighting 기능이 추가되었다.

 

 

 

 

Edge lighting -> 불빛 스타일을 누르게 되면

 

 

 

 

아래 그림처럼 효과를 고를 수 있다.

 

 

 

 

 

 


 

 

안드로이드 10에 대해 더 알고 싶다면 

https://www.android.com/android-10/

 

Android 10 | Android

Android 10의 최신 기능, 개선사항, 새로운 관리 기능을 모두 살펴보세요. 새로운 개인정보 보호 설정에서 폴더블 및 5G 지원까지 다양한 내용이 준비되어 있습니다.

www.android.com

 

+ Recent posts