2019/07 50

View 설정법

맨위에 Layout부분을 최상단 view라고 한다. (그리고 실제 디바이스화면 크기를 뜻한다.) 최상단뷰에서 layout설정이 match parent라고 되어있다는 것은 화면에 가로,세로를 모두 꽉 채운다는 뜻이다. 크기를 지정하는 방법으로는 3가지가 있다. 1. view 컴포넌트의 크기를 숫자로 지정한다. 2. dp라는 단위를 사용하는 방법이다. (내용물의 크기에 의해 자동으로 크기 조절이 된다.) 3. 부모의 크기를 이용하여 설정하는 방법이다. 여백을 관리하는 방법은 2가지 방법이 있다. 1. margin을 활용하는 방법이다. - 자식view를 부모view로 부터 얼만큼 떨어뜨릴지를 설정하는 방법이다. 2. padding을 활용하는 방법 - Textview의 내용물 위치를 변경하는 방법이다. 팁 : ..

오버플로우

#include #include int main(void) { int x = INT_MAX; printf("int형의 최대값 x는 %d 입니다.\n", x); printf("int형의 오버플로우를 봅시다. 만약 1이라도 더한다면 %d처럼 됩니다.",x+1); return 0; } 출력하게 되었을때는 -2억정도의 숫자가 나온다. 이것이 오버플로우 현상인데, 숫자의 한개치를 뛰어넘으면 제일 낮은 값으로 출력하게 되는 현상을 말한다. 또한 #include를 넣지않으면 int형의 최대치 숫자인 INT_MAX를 출력하지 못한다.

C/기초 2019.07.10

메모리크기 알려주기(sizeof(x))

#include int main(void) { int x = 5; printf("%d",x); printf("변수 x의 메모리크기는 %d입니다.",sizeof(x)); return 0; } 현재 %d에 들어갈 내용은 sizeof(x)인 건데 이것의 뜻은 현재들어가있는 메모리의 크기는 얼마나 되는지 알려주는것이다. 현재 x가 int형이기 때문에 4가나온다. 왜냐하면 어떠한 int변수이건간에 무조건 4bite만큼 크기를 차지하게 된다. cf. float은 실수형이긴 하지만 소수점의 범위를 크게 표현하지못한다. 크기가 4bite이기떄문에 소수점을 길게 쓰면 00이라고 출력되는 것을 볼 수 있을것이다. 아무의미없는 쓰레기값이 된것을 보게 되는 것이다. double은 float보다 더 넓은 범위의 실수형을 표현할..

C/기초 2019.07.10

C++ 기본내용

#include int main(void) { printf("hello World!"); return 0; } #include은 라이브러리를 추가하는 부분이다. printf를 바로 사용할 수 있는것이 아니고 이러한 라이브러리를 추가해야지 사용을 할 수 있다. #include 는 standard input.output.headup이라는 뜻이며 printf나 scanf처럼 메세지를 입력받거나 출력하는 하나의 기본 라이브러리이다. return 0; 는 하나의 함수가 종료될때 반환되는 값을 지정을 0으로 한것이다. 내가 만든 메인함수는 반환형 함수가 int이기 때문이다. 즉 메인함수를 실행하고 종료할때 반환값을 int로 하겠다라는 뜻이다. 0으로 반환하면서 프로그램을 종료하겠다는 뜻이다. hello World!..

C/기초 2019.07.10

안드로이드 화면구성 도구

View Component 안드로이드 화면을 구성 하는 요소들 TextView, ImageView, Button ViewComponent의 종류 LinearLayout RelativeLayout FrameLayout ScrollView 기타등등 TextView, ImageView 기타등등 모든 ViewComponent 모든 ViewComponent가 가지고 있는 속성 Width Height Background 각각의 ViewComonent가 가지고 있는 속성 ex) TextView의 TextColor, TextSize 화면 크기 단위 px = 뷰컴포넌트의 절대 크기를 나타날때 사용하는것이 좋다. 컴포넌트들이 화면 크기의 상관없이 절대적인 크기로 표현이 된다. dp = 디바이스 대비 동일한 크기의 컴포넌트..

call by value

class Updater { public void update(Counter counter) { counter.count++; } } public class Counter { int count = 0; public static void main(String[] args) { Counter myCounter = new Counter(); System.out.println("before update:"+myCounter.count); Updater myUpdater = new Updater(); myUpdater.update(myCounter); System.out.println("after update:"+myCounter.count); } } 이렇게 메소드의 입력으로 객체를 전달받는 경우에는 메소드가 입..

자바 메소드(Method)

보통 다른언어에는 함수라는 것이 별도로 존재한다. 하지만 자바는 클래스를 떠나 존재하는 것은 있을 수 없기 때문에 자바의 함수는 따로 존재하지 않고 클래스 내에 존재한다. 자바는 이 클래스 내의 함수를 메소드라고 부른다. ※ 보통 함수와 메소드가 공존하는 언어(예:파이썬)에서는 두 개를 구분하여 말하기도 하지만 자바는 보통 메소드와 함수를 구분하여 말하지 않는다. 다만 자바에서 사용되는 함수의 정확한 명칭은 메소드이다. 메소드를 사용하는 이유는? 가끔 프로그래밍을 하다 보면 똑같은 내용을 자신이 반복해서 적고 있는 것을 발견할 때가 있다. 이 떄가 바로 메소드가 필요한 떄이다. 여러번 반복해서 사용된다는 것은 언제고 또 다시 사용할 만한 가치가 있는 부분이라는 뜻이다. 즉, 이러한 경우 이것을 한 뭉치로..

while문

반복해서 문장을 수행해야 할 경우 while문을 사용한다. 다음은 while문의 기본 구조이다. while (조건문) { ... } while문을 수행하는 예를 보여주겠다. int treeHit = 0; while (treeHit < 10) { treeHit++; System.out.println("나무를 " + treeHit + "번 찍었습니다."); if (treeHit == 10) { System.out.println("나무 넘어갑니다."); } } treeHit가 10보다 작은 동안에 while 문 안의 문장들을 계속 수행하게 된다. whlie문 안의 문장을 보면 제일 먼저 treeHit++로 treeHit값이 계속 1씩 증가한다. 그리고 나무를 treeHit번 만큼 찍었음을 알리는 문장을 출력하..

java/제어문 2019.07.09

List 추가정리

List 자료형에는 ArrayList, LinkedList등의 List 인터페이스를 구현한 자료형이 있다. 여기서 말하는 List 자료형은 인터페이스인데 인터페이스에 대해서는 나중에 다루기로 한다. add 박찬호 선수가 총 3번의 투구를 138, 129, 142(km)의 속도를 던졌다면 다음과 같이 코드를 작성할 수 있다. ArrayList pitches = new ArrayList(); pitches.add("138"); pitches.add("129"); pitches.add("142"); add 라는 메소드를 이용하여 투구 스피드를 저장함. 만약 첫번째 위치에 "133"이라는 투구 스피드를 삽입하고 싶다면 아래와 같이 코딩하면 된다. pitches.add(0,"133"); get System.out..

java/자료형 2019.07.09