공부
-
선언위치에 따른 변수의 종류공부/Java 2023. 12. 20. 18:57
선언위치에 따른 변수의 종류 변수의 종류를 결정짓는 중요한 요소는 변수의 선언 위치다. 변수의 종류를 파악하기 위해 변수가 어느 영역에 선언되었는지 확인하는 것이 중요하다. 예제 class ANewDream038 { int iv;// 인스턴스 변수 static int cv;// 클래스 변수 void method() { int lv = 0;// 지역변수 } } 변수의 종류 선언위치 생성시기 클래스 변수 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수 인스턴스가 생성되었을 때 지역변수 클래스 영역 이외의 영역 (메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때 인스턴스 변수(instance variable) 클래스 영역에 선언되며, 인스턴스를 생성할 때 만들어진다. 인스턴스 변수의 값..
-
클래스란?공부/Java 2023. 12. 19. 22:27
클래스란? 클래스는 두 자기 용도가 있다. 하나는 라이브러리(API)용이고, 다른 하나는 실행용이다. 라이브러리 클래스는 다른 클래스에서 이용할 목적으로 설계된다. 객체를 생성하기 위한 틀(설계도)로 볼 수 있으며, 속성과 기능으로 정의되어 있다. 실행 클래스는 프로그램의 실행 진입점인 main()메서드를 제공하는 역할을 한다. 클래스의 구성 멤버 필드(Field) (=멤버 변수) 객체의 데이터가 저장되는 곳 생성자와 메서드 전체에서 사용되며, 객체가 소멸되지 않는 한 객체와 함께 존재 필드 선언은 클래스 중활호 블럭{} 어디서든 존재할 수 있다. 하지만 생성자와 메서드 중괄호 블럭{} 내부에는 선언될 수 없다. 이건 로컬 변수가 되기 때문이다. 클래스 외부에서 필드를 사용할 경우 우선적으로 클래스로부터..
-
객체배열공부/Java 2023. 12. 16. 06:31
객체배열 객체도 배열로 다루는 것이 가능하다. 객체 배열 안에 객체가 저장되는 것은 아니고 객체의 주소가 저장된다. 객체 배열은 참조변수들을 하나로 묶은 참조변수 배열이라고 볼 수 있다. 객체를 생성할 후 객체 배열의 각 요소에 꼭 저장해야 한다. 객체 배열에서 가장 많이 실수하는 것 중 하나가, 객체 배열을 생성만 하고 저장하지 않았을 때 발생한다. 예제 Tv[] tvArr = new Tv[3];// 참조변수 배열(객체 배열) 생성 // 객체를 생성해서 배열의 각 요소에 저장 tvArr[0] = new Tv(); tvArr[1] = new Tv(); tvArr[2] = new Tv(); 배열의 초기화 블럭을 사용하면, 아래와 같이 한 줄로 작성 할 수 있다. Tv[] tvArr = { new Tv(),..
-
객체의 생성과 사용공부/Java 2023. 12. 15. 18:55
객체의 생성과 사용 클래스를 선언한 다음, 컴파일을 했다면(이클립스에서는 저장) 객체를 생성할 설계도가 만들어진 셈이다. 클래스로부터 객체를 생성하려면 new 연산자를 사용하면 된다. new는 클래스로부터 객체를 생성시키는 연산자다. new 연산자 뒤에는 생성자가 오는데, 생성자는 클래스() 형태를 가진다. new 연산자로 생성된 객체는 메모리 힙영역에 생성된다. new연산자는 힙 영역에 객체를 생성시킨 후 객체의 주소값을 리턴하도록 되어있다. 이 주소를 참조 타입인 클래스 변수에 저장해두면, 변수를 통해 객체를 사용할 수 있다. 사용 방법 클래스 변수; 변수 = new 클래스(); 클래스 변수 = new 클래스(); ※ 두 방법으로 사용할 수 있다. 예제 public class ANewDream035 ..
-
클래스와 객체공부/Java 2023. 12. 14. 20:57
클래스와 객체 클래스의 정의 클래스란 객체를 정의해 놓은 것 클래스의 용도 클래스는 객체를 생성하는데 사용 클래스는 설계도라고 볼 수 있다. 클래스는 객체를 생성하는 데 사용될 뿐, 객체 그 자체는 아니다. 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있다. 클래스 선언 규칙 하나 이상의 문자로 이루어져야 한다. 첫 글자에는 숫자가 올 수 없다. '$', '_' 외의 특수 문자는 사용할 수 없다. 자바 키워드는 사용할 수 없다. (for, int 등) 하나의 소스파일에 하나의 클래스만을 정의하는 것이 보통이지만, 하나의 소스파일에 둘 이상의 클래스를 정의하는 것도 가능하다. 이 때 주의할 것은 '소스파일의 이름은 public class의 이름과 일치해야 한다.'는 것이다. 만약 소스파일 내 ..
-
객체지향 언어공부/Java 2023. 12. 13. 16:23
객체지향 언어 객체(object) 물리적으로 존재하거나 추상적으로 존재할 수 있는 것 중 자신의 속성을 가지고 있으면서 식별 가능한 것 속성과 동작으로 구성되어 있으며, 자바는 이 속성과 기능을 각각 필드(field)와 메서드(method)라고 부른다. 객체지향언어의 주요 특징 1. 코드의 재사용성이 높다. 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 2. 코드의 관리가 용이하다. 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. 객체지향언어의 가장 큰 장점은 '코드..
-
열거 타입공부/Java 2023. 12. 12. 21:22
열거 타입 열거 타입 열거 타입은 몇 가지로 제한된 상수를 가지는 타입을 말한다. 아래는 7개의 값을 갖는 요일 데이터의 열거 타입 week을 선언한 것이다. 예제 public enum week { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } public enum 키워드는 열거 타입을 선언하기 위한 키워드며, 반드시 소문자로 작성한다. 열거 타입을 선언하기 위해선 enum 타입 { 상수, 상수, ... } 형태로 선언한다. 해당 열거 타입 이름은 Week이며, 열거 상수는 MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY 이다. ※ 전체가 대문자로 되어 있으면 상수로 취급..
-
향상된 for문공부/Java 2023. 12. 11. 12:56
향상된 for문 배열이나 컬렉션을 좀 더 쉽게 처리하기 위해 주로 사용한다. for문의 괄호()에는 배열에서 꺼낸 항목을 저장할 변수 선언과 콜론(:) 그리고 배열을 나란히 작성한다. 배열 및 컬렉션 항목의 개수만큼 반복하고 자동적으로 for문을 빠져나간다. ※ for문의 반복 횟수는 배열의 항목 수가 된다. 사용 방법 for(ⓑ타입 변수 : ⓐ배열){ ⓒ실행문; } ① for문이 처음 실행될 때 배열(ⓐ)에서 가져올 첫 번째 값이 존재하는지 평가한다. ② 가져올 값이 존대하면 해당 값을 변수(ⓑ)에 저장한다. ③ 실행문(ⓒ)을 실행한다. ④ 블록{} 내부의 실행문(ⓒ)이 모두 실행되면 다시 루프를 돌아 배열(ⓐ)에서 가져올 다음 값이 존재하는지 평가한다. ⑤ 만약 다음 항목이 존재한다면 ⓑ → ⓒ → ..