본문 바로가기

자바

4-2. 클래스와 객체 생성, 생성자 *클래스와 객체(둘의 관계) 자바에서 가장 많이 듣는 단어가 바로 이 클래스와 객체이다. 자바 프로그램을 작성할 때 쓰는 기본요소라고나 할까. 가장 일반적인 비유는 클래스 : 객체 = 붕어빵 틀 : 붕어빵 클래스는 객체를 만들어 내기 위한 기본적인 틀을 미리 정의한거고, 객체는 실제로 이 틀을 이용해 만들어낸 하나의 인스턴스이다. *클래스 이제 본격적으로 클래스에 대해 알아볼 것임 -클래스의 구성 : 클래스 안에는 구성 요소들이 있는데 이것들을 멤버라고 부른다. 멤버는 2종류 : 필드(=멤버 변수) , 메소드(=멤버 함수) 실제로 어떻게 생겼냐면, Circle이라는 클래스를 정의해서 만들어 보면 public class Circle{ //클래스의 선언은 class 키워드를 사용한다. public은 접근지정.. 더보기
4-1. 클래스와 객체_객체 지향 언어의 특성 역사, 흐름을 아는 것은 더 큰 그림을 이해하고 다음을 예측할 수 있게 해준다. *객체지향 언어가 등장한 배경 소프트웨어의 생명주기가 짧아지면서, 빠른시간에 기획과 제작이 필요. "소프트웨어의 재사용" 즉 모델링이 쉬움 -커피 자판기를 절차지향언어와 객체지향언어로 표현한 그래프를 보면 그 차이가 확 느껴짐. *객체 지향 언어의 특성 1. 캡슐화 (Encapsulation) - 캡슐처럼 싸서 그 내부를 보호하고 볼 수 없게 하는 것. // 클래스라는 캡슐을 사용해 객체를 표현 - 클래스의 구성 요소 1.메소드(함수) 2. 필드(데이터 변수) - 객체 외부에서 객체내의 필드나 메소드 직접 접근 불가능하며, 메소드의 구현내용도 알 수 없음. (모두 그런건 아님) -->대충 내가 이해한 대로는 클래스라는 것을 .. 더보기
3-3. main() 과 예외처리 * main( ) 메소드 -형태 public static void main(String[] args){ } -특징 1. 프로그램의 시작은 main( )부터 시작 된다. 2. public 속성은 메소드가 다른 클래스에서 호출이 가능하다는 것을 나타냄. 프로그램 실행시에 JVM에서 호출 3. static 속성과 관련 - main( )메소드가 포함된 객체가 생성되기 전에 JVM에 의해 미리 호출됨을 나타냄 // 논리적으론 이해했는데 정확히 뭔말인지.. 4. void는 리턴값이 없음 5. 주어지는 모든 인자를 문자열 배열(String[] )로 처리하여 main( )메소드에 전달 된다. cf. main( )메소드는 클래스마다 1개씩 존재 할 수 있다. 그러나 여러 클래스 중 시작되는 main( )메소드를 가진 클.. 더보기
3-2. 배열 * 배열 선언 및 생성 int A [] ; //레퍼런스 변수 생성 - 배열이 실제로 생성된 것이 아니라 배열의 주소값이 들어 갈 변수가 만들어 진것, A = new int [5]; //실제적으로 5개 원소를 갖는배열이 생성됨 int A [] = new int [5]; int[] A = new int [5]; int A [] = {1,2,3,4,5}; - 두 개의 레퍼런스 변수가 같은 배열을 가리킬 수 있음 * 배열의 크기, length 필드 -자바에서 배열은 하나의 객체처럼 다루어 진다. int size = A.length; //위에 5개짜리로 배열을 생성했으므로 5값이 들어간다. 즉, A라는 레퍼런스 변수가 가리키는 객체의 덩어리 안에 1. 배열 , 2. length라는 필드(C언어로 치면 구조체에서 .. 더보기
3-1. 반복문 1. for - 횟수가 정해진 경우에 많이 사용 for(초기문; 조건식; 반복 후 작업){ 작업문 } -초기문 -시작할 때 한번 수행 -콤마(,)로 분리하여 여러문장을 나열 할 수도 있다. -초기문 비우는 경우도 있음 -초기문에서 변수 선언시 이것은 for문 내부의 지역변수로 취급됨. for문 벗어나서 쓸 수 없음 -조건식 -논리형 변수나 논리 연산만 사용 가능 -작업문이 실행되기 전에 조건식을 검사 -비워두면 true로 간주 됨 -반복 후 작업 -작업문이 실행된 뒤에 실행 됨 -콤마로 분리해서 여러문장을 나열 할 수 있음. 2. while문 while(조건식) { 작업문 } -조건식에 사용할 변수는 while문 전에 선언과 초기화 필요 -무한 루프를 원하는게 아니라면 반복 진행 되면서 조건식을 fals.. 더보기
2-2. 자바 기본 프로그래밍 (공부메모) *자바에서 키 입력 자바에서 입력받는 방식은 2가지 1. 표준 입력 스트림인 System.in 을 이용 2. JDK가 제공하는 Scanner 클래스를 이용 사용하기는 Scanner를 이용하는게 쉽지만, 말그대로 표준방식이므로 쓸 줄 알아야함. *System.in System.in은 저수준(low-level)의 입력 스트림 객체로 키보드 장치와 연결되어 있다. System.in만으로도 키보드 장치로부터 입력을 받아 들일 수는 있으나 System.in이 입력받은 값을 바이트정보로 반환하기 때문에 이를 문자 정보로 변환하는 과정이 필요하다. 그래서 고수준(high-level)방법에 InputStreamReader 클래스를 이용하는 방법이 있는데, 이것은 System.in을 이용해 입력 키 입력을 받고, 이것을.. 더보기
2-1 자바 기본 프로그래밍 (공부 메모) C언어를 배웠기 때문에 많은 내용이 생략되어 있음. 하나의 언어를 배우면 다른 언어 이해가 수월해진다는게 이 얘기 였나봅니다. 첫 언어로 java공부를 하시는 분이면 을 참고 하시면 됩니다. (이 책보면서 내용 정리하는 중이므로 제 정리 내용과 함께 보든 지, 그냥 책만 보시든지) 책을 구매하시는게 부담스러울 수 있습니다. 저 역시 옛날엔 책 값에 뜨억해서 책 구매보단 어둠의 경로를 통해 얻으려 했지만, 요새는 새 책을 사는 편입니다.(집안 사정이 어렵다면 도서관이나 중고책등을 활용하시거나 인터넷을 이용해 자료를 구해보세요 ㅠ) 책을 만드는 사람이 최소 몇 년이상 쌓은 관련 분야 지식과 집필 노력, 책을 읽고 난 뒤에 얻어서 내 머릿 속에 남은 지식의 활용 가치, 등을 생각해보면 비싸다기 보다는 싸다는 .. 더보기
1. 자바 시작 (공부 메모) *관련 용어 이해 -바이트 코드(byte code) : 자바 컴파일러가 자바 소스 프로그램을 컴파일한 기계어로서 , 자바 가상 머신에서 실행되는 바이너리 코드. CPU에 의해 직접 실행 되는게 아니라 가상 기계가 바이트코드를 인터프리터 방식으로 실행 -자바는 플랫폼(운영체제)에 독립적으로 돌아가는 것이 장점. 자바 가상머신 때문 //자바 가상 머신 자체는 플랫폼 종속적임 -JDK(java development kit) - 자바 컴파일러 같은 자바 응용프로그램 개발하는데 필요한 도구 + 자바 프로그램이 실행될 때 필요한 자바 가상 기계와 표준 클래스 파일들 포함한 JRE -JRE(java run-time enviorment) -자바 프로그램이 실행될 때 필요한 자바 가상 기계와 표준 클래스 파일들 포함 *.. 더보기