사람의 이름 나이 같은 속성을 자바에서는 필드(field)라고 한다.


우선 이름과 번호를 필드로 가지고 있는 Car클래스를 선언해준다.

public class Car {

//필드는 변수를 선언하는 것과 비슷하게

//타입 필드명

//이름을 표현할수 있는 타입은 String

String name;

int number;





Car 클래스의 인스턴스화 하기

Car c1 = new Car();

Car c2 = new Car(); //Car라는 인스턴스가 메모리에 2개 만들어진다.

//객체별로 name와 number라는 속성을 가짐


속성 이용하기

참조 변수 다음에 나오는 점.(dot)는 참조 변수가 참조하는 객체가 가지고 있는 것을 사용할때 쓴다.


c1.name="소방차";    // c1 참조 객체 name을 소방차로 설정

c1.number=123;    //c1 이 참조하는 객체 number를 123으로 설정

c2.name="경찰차";

c2.number=456;

System.out.println(c1.name);    //콘솔창에 c1이 참조하는 객체의 name 출력

System.out.println(c1.number);

System.out.println(c2.name);

System.out.println(c2.number);

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

java 자바 스트링 메소드 String class method  (0) 2018.01.03
java 다양한 형태의 메서드  (0) 2018.01.02
java String class (스트링 클래스)  (0) 2017.12.31
java 참조형 타입  (0) 2017.12.31
java for each 반복문  (0) 2017.12.30

String 클래스


문자열을 표현하는 자바에서 가장 많이 사용하는 클래스


자바 인스턴스 생성 방법

1. new연산자를 이용하지 않고 인스턴스를 만드는 경우

Stringstr1="hello";

Stringstr2="hello";

 

hello라는 문자열이 메모리 중에서 상수가 저장되는 영역에 저장

상수는 변하지 않는 값을 의미.

String str2 = hello; 이 문장이 실행될 때에 hello 라는 문자열 상수는 이미 만들어져 있으므로 str1이 참조하는 인스턴스를 str2도 참조


2. new연산자를 이용해서 인스턴스를 만드는 경우

Stringstr3=newString("hello");

Stringstr4=newString("hello");


new연산자를 이용하여 인스턴스를 만들면 인스턴스는 무조건 새롭게 만들어진다.

String str4 = new String(hello); 이 문장이 실행될때도 새롭게 만들게 되므로, str3 str4는 서로 다른 인스턴스를 참조


if(str1==str2){ // 같은 인스턴스를 참조

System.out.println("str1str2는 같은 레퍼런스입니다.");

}

 

if(str1==str3){ // str1str3은 서로 다른 인스턴스

System.out.println("str1str3는 같은 레퍼런스입니다.");

}

 

if(str3==str4){ // str3str4는 서로 다른 인스턴스를 참조

System.out.println("str3str4는 같은 레퍼런스입니다.");

}

 

참조변수끼리 == 로 비교하면 서로 같은 것을 참조하는지 비교

String은 다른 클래스와 다르게 new를 사용하지 않고 사용할 수 있다. 메모리를 아끼려면 Stringnew를 사용하지 않고 사용하는 것이 좋다.

String은 불변 클래스이다. 불변이란 String이 인스턴스가 될때 가지고 있던 값을 나중에 수정할 수 없다.

String은 문자열과 관련된 다양한 메소드를 가지고 있다. 메소드를 호출한다 하더라도 String은 내부의 값이 변하지 않는다.

String이 가지고 있는 메소드중 String을 반환하는 메소드는 모두 새로운 String을 생성해서 반환한다.

   

Stringstr5="hello world";

Stringstr6=str5.substring(3);

 

substring은 문자열을 자른 결과를 반환하는 메소드이다. 해당 코드가 실행되어도 str5는 변하지 않음

str6str5가 가지고 있는 문자열 중 3번째 위치부터 자른 결과 즉 새로운 String을 참조


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

java 다양한 형태의 메서드  (0) 2018.01.02
java 필드(field) 선언  (0) 2017.12.31
java 참조형 타입  (0) 2017.12.31
java for each 반복문  (0) 2017.12.30
java for 반복문을 이용해서 배열 사용하기  (0) 2017.12.30






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

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


참조형 변수

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

+ Recent posts