본문 바로가기

프로그래밍 언어/Java

(6)
[ANDROID / JAVA] Activity 간 화면 전환 Activity 간 화면전환 Intent 라는 객체를 이용하면 Activity 간의 화면전환이 가능해진다. 이번 포스팅에서는 Intent 를 이용하여 Activity 간의 화면을 전환하는 방법과 Activity 간 데이터를 전달하는 방법, 그리고 데이터를 다시 받아올 수 있는 방법에 대해 알아보자. 먼저, Activity 간 화면 전환 코드를 보자. XML 레이아웃 코드는 따로 작성하지 않고 자바 코드만 보자. public class MainActivity extends AppCompatActivity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState)..
[ANDROID / JAVA] Inflation 안드로이드에서 UI 구성은 XML 로 처리한다. 그리고 XML 레이아웃 파일은 앱이 실행될 때 메모리에 올라가며 객체화가 이루어진다. 이렇게 XML 에 있는 뷰들의 객체화 과정을 인플레이션 이라고 한다. 이제 안드로이드에서 말하는 인플레이션이 무엇인지는 알았다. 대충 XML 에 있는 뷰들을 객체화를 시키는 과정이구나 싶다. 그러면, 앱이 실행만 되면 자동으로 XML 에 있는 뷰들이 객체화가 되는걸까? 어떻게 뷰들이 객체화 될 수 있는지 알아보자. SetContentView() 처음 안드로이드 프로젝트를 열고 자바코드를 살펴보면 몇가지 코드들이 작성되어 있다. 그 중, setContentView() 를 보자. setContentView() 의 파라미터로 R.layout.activity_main 이라는 xm..
[ANDROID / JAVA] 상속과 생성자 생성자를 통한 초기화 다음 코드를 보자. class Parent{ String name; public Parent(String name){ this.name = name; } } class Child extends Parent{ int age; public Child(int age){ this.age = age; } }Parent 클래스와 Child 클래스가 정의되어 있다. 이 상황에서 Child 클래스를 인스턴스화 하게 된다면, 부모 클래스의 변수 또한 상속이 이루어지게 된다. 그런데 문제는 이 인스턴스 안에는 부모클래스의 변수는 초기화 되지 않는 문제가 발생한다. 이러한 상황이라면 부모클래스의 변수는 어떠한 방식으로 초기화를 해주어야 할까? - 자식 클래스에서 부모클래스의 변수를 생성자를 통해 초기화..
[ANDROID / JAVA] 변수 인스턴스 변수,클래스 변수,지역 변수의 차이 자바에서는 변수를 인스턴스 변수, 클래스 변수, 지역 변수로 나눈다. 아래 코드를 보자. class Variable { String name; // 인스턴스 변수 static int id; // 클래스 변수 public void getAge(){ int age; // 지역 변수 } } 이 코드를 바탕으로 알 수 있는것은 다음 세 가지이다. 인스턴스 변수 name은 클래스 내부에서 선언되었다. 클래스 변수 id는 인스턴스 변수와 비슷하지만 static 이라는 키워드가 앞에 붙어있다. 지역 변수 age는 클래스 내부의 메소드내에서 선언이 되었다. 인스턴스 변수 클래스 내부의 변수 클래스가 인스턴스화 될 때 메모리에 올라간다. //인스턴스를 생성하지 않는다면 이 변..
[ANDROID / JAVA] 상속 (inheritance) 상속의 필요성을 느껴보자. B라는 새로운 클래스를 만들고 싶은데 B 클래스는 A 클래스의 변수와 메서드를 기반으로 새로운 기능이 추가된 클래스라 하자. 만약에 상속의 개념이 없다면, B라는 클래스는 A 클래스에 있는 변수와 메소드들을 전부 똑같이 구현해 내야 할것이다. 이는 코드의 중복으로 이어지고 효율성이 매우 낮아지는 결과를 초래한다. 여기에서 상속이라는 개념을 이용하게 된다면 *아주 놀랍게도 * B 클래스는 코드의 중복 없이 A 클래스의 변수와 메소드를 그대로 사용할 수 있다! 상속의 문법 class [하위 클래스이름] extends [상위 클래스 이름]{ . . . } 위에서 이야기한 A,B 클래스를 다시 한번 생각해보자. B 클래스는 A 클래스를 상속하였고, B 클래스를 인스턴스화 하였다고 생각..
[ANDROID / JAVA] ShortCircuitEvaluation ShortCircuitEvaluation (lazy Evaluation) 은 연산의 특성중 하나로, 연산의 효율 및 속도를 높이기 위해 불필요한 연산을 생략하는 행위입니다. 아래 코드를 봅시다. int num1 = 0; int num2 = 0; boolean result; result = ((num1 += 10) 0); result = ((num1 += 10) > 0) || ((num2 += 10) > 0); System.out.println(num1); System.out.println(num2); 위 코드는 && 연산자와 || 연산자를 이용하여 조건의 참,거짓을 판별하여 변수 result 에 대입하고, num1 과 num2 의 값을 출력하는 코드입니다. 여기..