참조형 타입은 기본형 타입을 제외한 모든 타입

배열도 참조형이고, 클래스도 모두 참조 타입


참조형 변수

String str = new String(hello);


str 변수 앞에 기본형 타입이 아닌 String클래스


이퀄(=)뒤에는 new 다음에 생성자라는 것이 있다.


new 라는 키워드는 클래스를 메모리에 올려준다.

 이렇게 메모리에 올라간 클래스를 인스턴스라고 말함



메모리에 올라간 인스턴스를 가리키는 변수==참조하는 변수==레퍼런스 하는 변수가 str 이다. 


참조한다. 레퍼런스 한다라는 것은 변수가 인스턴스를 가지고 있는게 아니라 말그대로 가리킨다는 의미


str이라는 변수에는 메모리의 위치 값이 저장되는 것이다. 

메모리의 위치값이 저장된다고 하더라도, 어떤 메모리에 저장되는지 그 정보를 알 수 있는 방법은 없다. 

그렇기 때문에 str변수는 String 인스턴스를 참조한다라고만 알아두자.

클래스들은 모두 참조형이다.

'JAVA를 해보자' 카테고리의 다른 글

java 필드(field) 선언  (0) 2017.12.31
java String class (스트링 클래스)  (0) 2017.12.31
java for each 반복문  (0) 2017.12.30
java for 반복문을 이용해서 배열 사용하기  (0) 2017.12.30
java 배열  (0) 2017.12.30

for each

for each에서는 배열의 항목 수만큼 실행부분을 반복하는데

반복이 이뤄질때마다 배열 항목을 순서대로 꺼내 변수에 자동대입해준다.


따로 반복 변수를 선언하거나 배열의 값을 가져오는 작업이 없어 편리하다.

대신 읽을수는 있지만 수정할수는 없다.



'JAVA를 해보자' 카테고리의 다른 글

java String class (스트링 클래스)  (0) 2017.12.31
java 참조형 타입  (0) 2017.12.31
java for 반복문을 이용해서 배열 사용하기  (0) 2017.12.30
java 배열  (0) 2017.12.30
java_for 반복문사용  (0) 2017.12.30


public int sum(int[] param) {

int[] array = param;

int sum = 0;


            for(int i = 0;i<array.length;i++){

            sum = sum + array[i]; 

            }

return sum;

}


public static void main(String[] args) {

int[]TestCase = new int[4];

String str = "";

int rightResult = 0;

for(int i=0; i<4; i++){

TestCase[i] = (int)(Math.random()*100);

rightResult += TestCase[i];

str+=(TestCase[i]+",");

}

str=str.substring(0,str.length()-1);


ArrayExam exam = new ArrayExam();

int Answer = exam.sum(TestCase);

if (Answer==rightResult) {

  System.out.println("정답입니다.");

}

else{

System.out.println( str+"를 더한 sum의 값이 틀립니다.");

}

}

}


array는 길이가 100인 배열
for문을 이용해서 array에 순서대로 1부터 100까지 값을 넣기


public class ArrayExam {

public int[] fill100() {

int[] array = new int[100];

                for(int i = 0; i<100; i++){

               array [i] = i+1;


return array;

}



public static void main(String[] args) {

ArrayExam exam = new ArrayExam();

int[] arr2 = exam.fill100();

for (int i = 0; i < 100; i++) {

if (arr2[i] != i + 1) {

System.out.println("array[" + i + "]의 값이 틀립니다.");

}

}

}

}




for 반복문을 이용해서 배열 사용하기

배열에 접근할때에는 인덱스를 통해서 접근한다.

    int[] iarray = new int[100];

    iarray[0] = 1; 

    iarray[1] = 2; 


배열에 0번째 인덱스 부터 시작해서 1부터 100까지 넣기


정수를100개 저장 할 수 있는 배열을 생성

    int [] iarray = new int[100];



배열의 길이를 알아내는 방법

    iarray.length 

    //배열을 참조하는 레퍼런스 변수.length 하면 해당 배열의 길이를 리턴한다. 



배열에 1부터 100까지 값넣기

    //배열에 값을 반복적으로 넣어야 하므로, for 반복문을 이용한다. 

    for(int i = 0; i < iarray.length; i++){ 

    //배열의 인덱스는 0부터 시작하므로, 0부터 배열의 길이보다 하나 작을때까지 반복하면 배열의 크기만큼 반복할 수 있다. 

            iarray[i] = i + 1;  

    //배열의 인덱스는 0부터인데 넣고 싶은 값은 1부터 사용해야하므로, 인덱스에 1을 더해준 값을 넣어준다. 

    }



배열에 저장된 값을 모두 더해주기

    int sum = 0; 

    //값을 누적하기위한 변수는 반복문 밖에서 선언한다. 


    for(int i = 0; i< iarray.length; i++){  

    // 배열의 크기만큼 반복한다.         


        sum = sum + iarray[i];

        //반복문 밖에서 선언한 변수에 반복적으로 값을 누적한다. 

    }


    System.out.println(sum);

    //배열에 들어있는 모든 값 누적한 변수를 출력한다. 

'JAVA를 해보자' 카테고리의 다른 글

java 참조형 타입  (0) 2017.12.31
java for each 반복문  (0) 2017.12.30
java 배열  (0) 2017.12.30
java_for 반복문사용  (0) 2017.12.30
산술연산자 / 대입연산자  (0) 2017.12.15



1차원 배열

배열은 같은 데이터 타입을 가진 연속된 메모리 공간으로 이우어진 자료구조

같은 데이터 타입을 가진 여러개의 변수가 필요할때 사용


배열 생성방법

정수를 4개 저장 할 수 있는 배열을 생성 하는 방법

int[ ] array1 = new int[4];


배열에 값을 저장하는 방법

    array1[0] = 1;

    array1[1] = 2;

    array1[2] = 3;

    array1[3] = 4;

    //자바에서 배열의 인덱스는 0번 부터 사용한다. 4개짜리 배열은 0부터 3까지의 인덱스를 가지게 된다.

    //배열인덱스 0번부터 3번까지 차례로 1,2,3,4 값을 저장한다. 


배열에 저장된 값을 꺼내서 사용하는 방법

    int value = array1[2]; 

    //array1 이 참조하는 배열의 2번 인덱스에 해당하는 값 3을 꺼내서 int형 변수 value에 담는다. 

    System.out.println(array1[1]); 

    //array1 이 참조하는 배열의 1번 인덱스에 해당하는 값 2가 콘솔에 출력된다. 


선언과 동시에 초기화하는 방법

    int[ ] array2 = new int[ ]{1,2,3,4,5};

    //int 값을 5개저장 할 수 있는 배열이며, 해당 배열에는 1,2,3,4,5가 순서대로 저장되게 된다.

'JAVA를 해보자' 카테고리의 다른 글

java for each 반복문  (0) 2017.12.30
java for 반복문을 이용해서 배열 사용하기  (0) 2017.12.30
java_for 반복문사용  (0) 2017.12.30
산술연산자 / 대입연산자  (0) 2017.12.15
바이트(byte)  (0) 2017.12.15

for문을 이용해서 1부터 100까지 숫자 중 짝수만 출력해 보세요


public class ForExam{

  public static void main(String[] args){

    for( int i = 1; (i<=100);i++){

//for 코드를 통해 1부터 100까지 출력하는 문장 작성

      if(i%2==0){

//for 블럭 내에서 if블럭을 이용해서 짝수만 출력

      System.out.println(i);

      }

    }

  }

}


for 문

for반복문은 변수초기화, 조건식, 증감식이 한줄에 모두 있다.

1.    초기화식은 최초 한 번만 수행합니다.

2.    조건식을 수행해서 수행결과가 false라면 for 반복문을 빠져 나갑니다.

3.    수행 결과가 true라면 실행문을 수행한다.

4.    증감식을 수행한다.

5.    2번부터 4번까지 반복적으로 수행한다.

 

    for(초기화식; 조건식; 증감식){

        실행문;

        실행문;

    }




for문을 이용하여 1부터 100까지의 합을 구하는 프로그램


    int total = 0; //1부터 100까지 합한 결과값을 담기위한 변수 선언 

    for(int i = 1; i <= 100; i++){ //1부터 100까지 반복하기 위한 for 반복문 

        total = total + i; // 1부터 100까지 반복해서 total 변수에 값을 누적  

    }

    System.out.println(total);  //결과값 출력 

for문을 이용하여 1부터 100까지의 짝수의 합을 구하는 프로그램

    public class ForExam {

        public static void main(String[] args) {

            int total = 0;

            for(int i = 1; i <= 100; i++){

                if(i % 2 != 0){  // 2로 나눈 나머지가 0이 아니라는것은 홀수를 의미한다.  

                    continue; // 홀수일 경우 total = total + i; 문장이 실행되지 않으므로, 결과적으로 짝수만 더해준다. 

                }

                total = total + i;

            }

            System.out.println(total);

        }

    }


'JAVA를 해보자' 카테고리의 다른 글

java for 반복문을 이용해서 배열 사용하기  (0) 2017.12.30
java 배열  (0) 2017.12.30
산술연산자 / 대입연산자  (0) 2017.12.15
바이트(byte)  (0) 2017.12.15
비트(bit)  (0) 2017.12.15

산술 연산자:

계산에 이용되는 +/-같은 것들을 연산자라고 한다.

 

수치계산에 사용되는 연산자

연산자

기능

사용 방법

의미

+

더하기

a=b+c

bc를 더한값을 a에 대입

-

빼기

a=b-c

b에서 c를 뺀값을 a에 대입

*

곱하기

a=b*c

bc를 곱한값을 a에 대입

/

나누기

a=b/c

b에서 c를 나눈값을 a에 대입

c0이면 오류

%

나머지

a=b%c

b나누기 c의 나머지를 a에 대입

c0이면 오류

=

대입

a=b

b값을 a에 대입

 

 

2+2 4입니다.

2-20입니다.

2*24입니다.

2/21입니다.

2/2의 나머지는 0입니다.

 

대입 연산자

변수에 값을 대입하는 ‘=‘연산자는 좌변은 변수 우변은 값으로 간주한다. 따라서 int형 변수 a 그자체의 값을 2증가시키고 싶을 때 다음과 같이 사용한다.

a값을 2 증가시킨다는 것을 아래와 같이 사용할수도 있다.

a += 2;

‘=’ ‘+=’를 대입연산자라고 한다.

연산자

기능

사용법

의미

+=

더한 값을 대입

a+=b

a+b의 값을 a에 대입

a=a+b와 동일

-=

뺀 값을 대입

a-=b

a-b값을 a에 대입

a=a-b와 동일

*=

곱한 값을 대입

a*=b

a*b값을 a에 대입

a=a*b와 동일

/=

나눈 값을 대입

a/=b

a/b값을 a에 대입

a=a/b와 동일

%=

나머지를 대입

a%=b

a%b값을 a에 대입

a=a%b와 동일

실행값

9010을 더하면 100입니다.

'JAVA를 해보자' 카테고리의 다른 글

java 배열  (0) 2017.12.30
java_for 반복문사용  (0) 2017.12.30
바이트(byte)  (0) 2017.12.15
비트(bit)  (0) 2017.12.15
논리연산자(Logical Operator)  (0) 2017.12.15

다차원 배열

종횡으로 확장되는 데이터를 한번에 다루기 위해서는 다차원 배열이 편리하다.

 

다차원 배열이란: 요소수에 따라 횡으로 늘어가는 일차원의 이미지 배열과 달리 2차원, 3차원으로 확장되는 배열

 

1차원배열:

int [ ] a=new int [3] ;

a[3]

a[0]

a[1]

a[2]

 

2차원 배열:

int [ ] [ ] a = new int [2] [3] ;

y

a[2][3]

a[1][0]

a[1][1]

a[1][2]

a[0][0]

a[0][1]

a[0][2]

x

 

3차원 배열:

int [ ] [ ] [ ] a = new int [2](z) [2](y) [3](x) ;

a[2][2][3]

(y)

a[1][1][0]

a[1][1][1]

a[1][1][2]

z

a[1][0][0]

a[1][0][1]

a[1][0][2]

a[0][1][0]

a[0][1][1]

a[0][1][2]

a[0][0][0]

a[0][0][1]

a[0][0][2]

x

 

다차원 배열에 대한 대입/초기화/참조

int a [ ] [ ] = {

{10,20,30},

{40,50,60}

} ;

초기화

{ }와 콤마의 조합에 유의

a [0] [2] = 0 ;

a[0][2]0을 대입

System.out.println( a[1][0] ) ;

a[1][0]을 참조

class Number1 {

public static void main(String[] args) {

int [] [] a = {

{10,20},

{30,40},

{50,60}

} ;

System.out.println(“ a [0][0] =” + a [0][0] + “ a [0][1] = ” + a [0][1]) ;

System.out.println(“ a [1][0] =” + a [1][0] + “ a [1][1] = ” + a [1][1]) ;

System.out.println(“ a [1][1] =” + a [2][0] + “ a [2][1] = ” + a [2][1]) ;

}

}

a[0][0]=10 a[0][1]=20

a[1][0]=30 a[1][1]=40

a[2][0]=50 a[2][1]=60

'JAVA를 해보자' 카테고리의 다른 글

비교연산자(Relational Operator)  (0) 2017.12.15
표기법(Notation)  (0) 2017.12.14
JAVA_배열  (0) 2017.12.08
문자와 문자열 표현  (0) 2017.12.08
수치형(정수형,실수형)  (0) 2017.12.01

+ Recent posts