Git 실행 방법
1. 이클립스 실행
2. window 탭
3.show view 클릭
4. others 클릭
5. GIT Repository 클릭
6.www.github.com/eomjinyoung 접속 후 공유하고자 하는 프로젝트 클릭
7. 오른쪽 하단 HTTP주소 복사
8. repository 창의 주소에 붙여넣기
*변수*
변수란?
=>변수는 어떤 데이터를 나타내는 일종의 기호 혹은 지시 대명사와 같다.
=>변수는 필요한 데이터를 한 번 선언해 두고,
나중에 계속해서 사용하기 위한 하나의 문법적인 장치이다.
( - 변수를 이용하면 나중에 한 곳만 고쳐도 된다.
- 앞으로 그내용이 변할지도 모르는 수이므로 변수라 한다.)
*변수의 종류*
*연산자*
*단항 연산자*
*산술 연산자*
*관계 연산자*
*비트 연산자*
*제어문*
종류
* 조건문 : if... else, switch
* 반복문 : do... while, while, for
* 분기문 : break
-if문
- else 는 가장 가까운 if 문에 속하게 된다.
1) if (조건식)
문장;
: '조건식' 이 true인 경우 '문장'을 수행한다.
*
2) if (조건식)
문장1;
else
문장2;
: '조건식' 이 true라면 '문장1'을 수행하고, false라면 '문장2'를 수행한다.
예제)
int a = 3;
if( a > 4)
System.out.println("a > 4 입니다.");
System.out.println("종료합니다!");
=>종료합니다!
라고뜬다.
-switch
case 문은 break 문을 만날 때 까지 수행하기 때문에 사용시 유의해야 한다.
switch(식) {
*
case 상수식1: 문장1
break;
case 상수식2: 문장2
break;
case 상수식3: 문장3
break;
default: 문장0
}
: '식'의 결과값이 '상수식1' 이면 '문장1'을 수행하고 'break'문은 switch문을 빠져나간다.
'식'의 결과값이 '상수식2' 이면 '문장2'을 수행하고 'break'문은 switch문을 빠져나간다.
'식'의 결과값이 '상수식3' 이면 '문장3'을 수행하고 'break'문은 switch문을 빠져나간다.
만약, '식'의 결과값에 해당하는 경우가 없다면 'default:' 의 '문장0' 를 실행한다.
예제)
int a = 10;
switch(a * 5) {
case 50:
System.out.println("a * 5는 50입니다.");
System.out.println("따라서, a는 10입니다.");
break;
case (20 * 100):
System.out.println("a * 5는 100입니다.");
System.out.println("따라서, a는 20입니다.");
break;
default:
System.out.println("a는 5의 배수이겠지요");
a = 0;
}
=>a * 5는 50입니다.
따라서, a는 10입니다.
이렇게 뜬다.
*반복문 - do... while, while*
1) do ... while
do {
문장1
}while(조건식);
: 일단 '문장1'을 수행후 '조건식'의 값이 true이면 계속 do { } 문을 반복하여 수행한다.
2) while
while(조건식) {
문장1
}
: '조건식'의 값이 참일때만 while문의 { } 문을 수행한다.
*
즉, do... while 문은 1 이상을 반복하고, while 문은 0 이상을 반복한다.
예제)
do~while문
int a = 0;
do{
System.out.println("a = " + a);
a++;
}while (a < 10);
=>a = 0
a = 1
a = 2
a = 3
a = 4
a = 5
a = 6
a = 7
a = 8
a = 9
while문
int a = 0;
while(a < 10) {
System.out.println("a = " + a);
a++;
}
=>
a = 0
a = 1
a = 2
a = 3
a = 4
a = 5
a = 6
a = 7
a = 8
a = 9
*for문*
- 보통 어떤 인덱스 값을 사용하여 반복처리를 할 때 유용.
for(초기화 문장; 조건식; 증가문)
: 초기화 문장 - 보통 인덱스 값을 초기화 시키는 문장이 온다.
: 조건식 - true 이면 for문의 { } 문장을 수행하고, false 이면 for 문을 빠져나간다.
: 증가문 - 보통 인덱스 값을 증가시키는 문장이 온다.
* 참조 변수,배열*
참조변수
- reference 형에는 3가지가 있다.
class 형, interface 형, array 형
- reference 값은 객체에 대한 포인터(주소) 이다.
- 객체는 동적으로 생성된 class의 instance, array 그리고 interface를 구현한 배열이나
클래스의 인스턴스를 말한다.
- 객체는 heap 이라고 불리우는 메모리상에 생성되며, 더 이상 그 객체를 참조하는
참조 변수가 없다면 가비지 컬렉터에 의해 수집된다.
- 자바의 객체는 C++과 같은 언어처럼 명시적으로 free(해제)할 수 없다.
또한, 재생할 수 없다.
- 객체의 생성은 new 명령어를 사용한다.
==> 결론적으로, 참조변수는 객체의 주소를 담는 변수이다.
배열
- 같은 데이터형 값을 여러개 저장하기 위하여, 연속적으로 이어진, 같은 데이터 형의
메모리를 만드는 것!
- 국어, 영어, 수학 과목의 점수를 저장하기 위하여 int 형 변수 3개를 선언하면 된다.
int 국어, 영어, 수학;
- reference 형에는 3가지가 있다.
class 형, interface 형, array 형
- reference 값은 객체에 대한 포인터(주소) 이다.
- 객체는 동적으로 생성된 class의 instance, array 그리고 interface를 구현한 배열이나
클래스의 인스턴스를 말한다.
- 객체는 heap 이라고 불리우는 메모리상에 생성되며, 더 이상 그 객체를 참조하는
참조 변수가 없다면 가비지 컬렉터에 의해 수집된다.
- 자바의 객체는 C++과 같은 언어처럼 명시적으로 free(해제)할 수 없다.
또한, 재생할 수 없다.
- 객체의 생성은 new 명령어를 사용한다.
==> 결론적으로, 참조변수는 객체의 주소를 담는 변수이다.
배열
- 같은 데이터형 값을 여러개 저장하기 위하여, 연속적으로 이어진, 같은 데이터 형의
메모리를 만드는 것!
- 국어, 영어, 수학 과목의 점수를 저장하기 위하여 int 형 변수 3개를 선언하면 된다.
int 국어, 영어, 수학;
과목이 19개니까 변수만들기가 만만찮다
그러니 배열을써보자
- 사용방법
배열 선언 : 만약, 위에서 얘기한 19과목의 정수형 점수를 저장하고 싶다면?
1) 먼저 배열 객체의 주소를 담을 참조변수를 선언한다.
방법 1 -> int[] a = null;
방법 2 -> int a[] = null;
: [방법 1]은 자바에서 권장하는 방식이다. [방법 2]는 C, C++ 방법과 유사하다.
%% 'null' 값은 객체가 없음을 나타내는 reference 값이다. 참조변수를 초기화하는데
사용한다.
2) 배열 객체를 만들어 참조변수에 할당한다.
a = new int[10];
: int 형 메모리 10개를 만들고, 참조변수 'a'에 할당한다.
즉, 배열 객체의 주소를 변수 'a'에 할당한다고 보면된다.
3) 사용
a[0] = 10;
a[1] = 100;
: 배열 참조변수 'a' 에대해 '[]'를 사용하여 인덱스를 지정해 주고, 값을 할당한다.
즉, 위의 예는 참조변수 'a'가 가르키는 배열객체의 0번째 항목에 10을 할당하고
1번째 항목에 100 값을 할당하라는 뜻이된다.
- 사용방법
배열 선언 : 만약, 위에서 얘기한 19과목의 정수형 점수를 저장하고 싶다면?
1) 먼저 배열 객체의 주소를 담을 참조변수를 선언한다.
방법 1 -> int[] a = null;
방법 2 -> int a[] = null;
: [방법 1]은 자바에서 권장하는 방식이다. [방법 2]는 C, C++ 방법과 유사하다.
%% 'null' 값은 객체가 없음을 나타내는 reference 값이다. 참조변수를 초기화하는데
사용한다.
2) 배열 객체를 만들어 참조변수에 할당한다.
a = new int[10];
: int 형 메모리 10개를 만들고, 참조변수 'a'에 할당한다.
즉, 배열 객체의 주소를 변수 'a'에 할당한다고 보면된다.
3) 사용
a[0] = 10;
a[1] = 100;
: 배열 참조변수 'a' 에대해 '[]'를 사용하여 인덱스를 지정해 주고, 값을 할당한다.
즉, 위의 예는 참조변수 'a'가 가르키는 배열객체의 0번째 항목에 10을 할당하고
1번째 항목에 100 값을 할당하라는 뜻이된다.
1. 문자열 표현
String s1 = new String("홍길동");
String s2 = new String("홍길동");
if (s1 == s2) {
System.out.println("s1 == s2");
} else {
System.out.println("s1 != s2");
}
2. 상수 문자열 표현
- '가' => 내부적으로 가 라는 문자의 유니코드 값을 리턴
- "홍길동" => 내부적으로 홍길동 문자열을 가진 인스턴스를 생성
- 상수 문자열은 Heap이 아닌 Constant Pool 영역에 인스턴스를 만든다.
- 상수풀은 같은 값을 갖는 인스턴스를 만들지 않는다. => 메모리 낭비 방지!
String s3 = "홍길동"; =>상수풀에 새로운 인스턴스를 만든다.
String s4 = "홍길동"; => 상수풀에 기존에 만들어져 있던 인스턴스의 주소를 리턴한다.
if (s3 == s4) {
System.out.println("s3 == s4");
} else {
System.out.println("s3 != s4");
}
3. Heap에 만든 스트링을 상수풀에도 만드는 방법: intern()
String s5 = new String("홍길동");
String s6 = s5.intern();
if (s5 == s6) {
System.out.println("s5 == s6");
} else {
System.out.println("s5 != s6");
}
if (s3 == s6) {
System.out.println("s3 == s6");
} else {
System.out.println("s3 != s6");
}
equals() 사용
- Object에서 상속받은 메서드이다.
- 원래는 인스턴스 주소를 비교하는 메서드다.
- 하지만, String 클래스에서 값을 비교하도록 재정의(Overriding) 하였다.
String s1 = new String("홍길동");
String s2 = new String("홍길동");
String s3 = "홍길동";
if (s1.equals(s2)) {
System.out.println("s1.equals(s2)");
} else {
System.out.println("s1 != s2");
}
Value Object = Data Transfer Object
- 여러 속성의 값을 관련된 것 끼리 하나로 묶어서 다루는 클래스
예) Member, Project, Task
public class Member {
private String name;
private String phone;
private String email;
private String blog;
private int age;
private Date regDate;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getBlog() {
return blog;
}
public void setBlog(String blog) {
this.blog = blog;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age > 0 && age < 120) {
this.age = age;
}
}
public Date getRegDate() {
return regDate;
}
public void setRegDate(Date regDate) {
this.regDate = regDate;
}
=(get,set을 하나씩 쓰기 귀찮다면?)
=>위에과정을따라하면
모두 getter, setter가 생긴다.










댓글 없음:
댓글 쓰기