4일차 수업
1. this 키워드 : 메모리에 올라간 자기 자신을 가리킬때 사용
가. 인스턴스변수와 로컬변수와 동일하기 때문에 구별하기 위해 사용
this.XXX 인스턴스 변수를 가리킨다.
예> String name; // 인스턴스 변수
public void setName(String name){ // 로컬변수
this.name = name;
}
나. 오버로딩 생성자를 호출할때 사용. (생성자 끼리 서로 호출)
2. 패키지 ( package )
- 클래스 파일들을 관리할 목적으로 묶는방법.
- 관련된 클래스들끼리 동일한 패키지명으로 지정한다. ( 윈도우 폴더와 비슷 )
3. import 문
- 패키지가 다른 클래스를 사용하기 위한 방법.
- 여러개의 import 문을 사용 할 수있다.
예> import 패키지명.패키지명2.클래스명;
4. 가변 인자 (Varargs)
- 일반적인 메소드 호출시 사용
- 메소드명과 argument list가 일치해야 된다.
5. 배열 (array)
* 데이터 저장 방법
가. 변수
==> 데이터 10개이면 변수 10개 필요.
10개의 변수명을 모두 알아야 사용 가능하다.
서로 다른 변수명을 모두 알아야 되기 때문에 관리가 어렵다.
나. 배열
==> 다수의 데이터를 하나의 이름으로 관리 가능하다.
(배열명)
==> 특징 : 같은 데이터만 저장 가능하다.
인덱스(첨자)로 접근 한다. ( 0부터 시작)
배열의 크기는 배열명.length 로 알 수 있다.
배열은 참조형이다.
(배열명에는 위치값이 저장된다.)
배열은 참조형이기 때문에 new 이용해서 생성한다.
기본형도 참조형도 모두 배열로 관리가 가능하다.
2차원 배열일 경우
배열명 = new 데이터형[행크기][열크기]; // 열크기 생략가능
===학습세부사항 ===
1. this 키워드
정의 : 메모리에 올라간 자기 자신을 가리킬때.
<용도 2가지>
가. 인스턴스변수와 로컬변수와 동일하기 때문에 구별하기 위해 사용
this.XXX 인스턴스 변수를 가리킨다.
예> String name; // 인스턴스 변수
public void setName(String name){ // 로컬변수
this.name = name;
}
나. 오버로딩 생성자를 호출할때 사용. (생성자 끼리 서로 호출)
다른 클래스에서 생성자 호출방법?
=> new 클래스명();
같은 클래스에서 오버로딩 생성자 호출방법?
this();
this(12):
용도는 중복제거 및 데이터 초기화 효율
반드시 생성자에서 사용하고, 첫 라인에서 사용해야 된다.
예>
public Student(){}
public Student(int s){
this(s,null);
}
public Student(int s, String n){
this(s,n,null);
}
2. 패키지 ( package )
용도 : 클래스 파일들을 관리할 목적으로 묶는방법.
관련된 클래스들끼리 동일한 패키지명으로 지정한다. ( 윈도우 폴더와 비슷 )
방법 : package 패키지명;
package 패키지명.패키지명2;
특징 : 패키지명은 유일한 도메인을 사용한다.
예> com.xxx
java 로 시작하는 패키지는 사용불가.
하나의 클래스에 한번만 지정 가능.
package com.stu;
public class Student {}
패키치가 서로 다르면 접근이 불가능하다.
import 를 사용하면 접근이 가능하다.
* 모든 API는 패키지로 제공된다.
java.
javax.
org.
따라서 API의 클래스를 사용하기 위해서는
3. import 문
용도: 패키지가 다른 클래스를 사용하기 위한 방법.
문법 : import 패키지명.패키지명2.클래스명;
특징 :
여러번 사용 가능하다.
package com.xxx;
improt comstu.Student;
import java.util.ArrayList;
public class
4. 가변 인자 (Varargs)
용도 : 일반적인 메소드 호출시
메소드명과 argument list가 일치해야 된다.
문법:
가. 일반 메소드
public void set(int n){}
변수명.set(10);
나. 가변인자 메소드
public void set(int ... n){} //인수의 개수가 상관없다, 배열로 관리한다.
변수명.set(10);
변수명.set(10,20);
변수명.set(10,20,30);
5. 클래스 다이어그램
가. 클래스만 표현
student
나. 클래스 구성요소 모두 표현
* 접근지정자 4가지
public(+)
protected (#)
(default, friendly)
private (-)
클래스명
변수 ==> 접근지정자 String name;
변수명: 데이터형
+name:String
-----------------
생성자 ==> public Student(){}
public Student(int s, String n){}
+ 생성자명()
+ 생성자명( 변수명 : 데이터형, 변수명 : 데이터형)
메소드 ==> public void setName(String n){}
public String getName(){}
+메소드명(변수명:데이터형): 리턴타입
+getName():String
+setName(n:String)
6. 배열 (array)
* 데이터 저장 방법
가. 변수
==> 데이터 10개이면 변수 10개 필요.
10개의 변수명을 모두 알아야 사용 가능하다.
서로 다른 변수명을 모두 알아야 되기 때문에 관리가 어렵다.
나. 배열
==> 다수의 데이터를 하나의 이름으로 관리 가능하다.
(배열명)
==> 특징 : 같은 데이터만 저장 가능하다.
인덱스(첨자)로 접근 한다. ( 0부터 시작)
배열의 크기는 배열명.length 로 알 수 있다.
배열은 참조형이다.
(배열명에는 위치값이 저장된다.)
배열은 참조형이기 때문에 new 이용해서 생성한다.
기본형도 참조형도 모두 배열로 관리가 가능하다.
다. 컬렉션(*)
* 배열 사용 방법
가. 배열 선언
데이터형 [] 배열명; 데이터형 배열명 []; ([] 대괄호 , 브래킷)
int [] num; String [] name;
나 배열 생성
배열명 = new 데이텨형[크기];
==> 자동으로 기본값으로 설정된다.
num = new int[4]; name = new String[3];
다. 초기화
==> 인덱스로 접근
배열명[첨자] = 값;
num[0] =1; name[0] = "홍길동"
num[1] = 2; name[1] = "이순신"
num[2] = 3; name[2] = "유관순"
num[3] = 4; name[3] = "강감찬" //에러
7. 배열 생성 방법 3가지
가. new 이용
int [] num = new int[3];
num[0] = 1;
num[1] = 2;
num[2] = 3;
나. 리터럴 이용
===> 데이터형 [] 배열명 = {값1, 값2, 값3};
int [] num = {1, 2, 3};
String [] name = {"홍길동", “이순신”, “강감찬”};
Student [] stu = {
------------------------------------------------------------------
8. 이차원 배열
가. 배열선언
데이터형 [][] 배열명;
int [][] num; String[][] name;
나. 배열 생성
배열명 = new 데이터형[행크기][열크기]; // 열크기 생략가능
num = new int[3][2]; name = new String[2][2];
다. 초기화
num[0][0] = 1;
num[0][1] = 2;
num[1][0] = 3;
num[1][1] = 4;
num[2][0] = 5;
num[2][1] = 6;
======================================> 정방향 배열
* 비정방향 배열 ==> 열의 크기가 다르다.
가. 배열 선언
int [][]num;
나. 배열 생성 (행 크기 지정)
num = new int[3][]; //3행만 생성
다. 열 생성
num[0] = new int[3]; //1행의 3열
num[1] = new int[2]; //2행의 2열
num[2] = new int[1]; //3행의 1열
라. 초기화
num[0][0] = 1;
num[0][1] = 2;
num[0][2] = 3;
num[1][0] = 4;
num[1][1] = 5;
num[2][0] = 6;
-------------------------------------------------------------
9. 이차원 배열 생성방법 2가지
가. new
나. 리터럴
==> 데이터형 [][] 배열명 ={{값, 값, 값},{값 },{값, 값}};
int [][] num = { {1,2,3}, {4,5},{6} };
String[][] name = { {"홍길동"},{“강감찬”},{“유관순”}};
Student [][] stu = {
{new Student(1111, "홍길동", 20) },
{new Student(1111, "홍길동", 20),
new Student(1111, "홍길동", 20)},
{new Student(1111, "홍길동", 20),
new Student(1111, "홍길동", 20),
new Student(1111, "홍길동", 20)}
}
10. command line 파라미터
==> public static void main(String [] args) {}
==> 실행시 파라미터를 설정하면 자동으로 main메소드의 args배열로 저장이 된다.
ex) public class Test{
public static void main(String [] args) {
}//end main
}//end class
실행 :
Java Test 값, 값2, 값3
'프로그래밍 > Java' 카테고리의 다른 글
자바 [JAVA] 6일차 수업 (다형성) (0) | 2017.08.18 |
---|---|
자바 [JAVA] 5일차 수업 ( Argument로 정수및 문자형 받아오기 ) (0) | 2017.08.18 |
자바 [JAVA] 3일차 수업 객체,클래스 ,메소드,생성자 (0) | 2017.08.18 |
자바 [JAVA] 2일차 수업 ( Scanner 문) (0) | 2017.08.18 |
자바(JAVA) 1일차 수업 개발 환경 이해하기 (0) | 2017.08.18 |