Backend/Java13 자바의정석 ch6. 메서드란? 메서드란 ? 1. 문장들을 작업단위로 묶어서 이름 붙인 것 2. 값(입력)을 받아서 처리하고 결과를 반환(출력) 더보기 2번 특징은 함수와 매우 비슷하다. 메서드와 함수는 거의 똑같지만 메서드는 객체지향개념에서 함수를 지칭하는 용어이다. 따라서 메서드는 무조건 클래스안에 있어야하고 함수는 클래스와 독립적이다. 메서드 = 선언부 + 구현부 선언부 : 반환타입 메서드이름 (타입 변수명, 타입 변수명, ...) 반환타입 : 작업 결과의 타입 (반환 값이 없으면 반환 타입은 void ) 괄호안 : 매개변수(입력) 목록 (작업에 필요한 값들), 0개부터 n개까지 가능 입력값의 개수는 0~n개지만, 출력 값은 0~1개이다. 따라서 여러개의 결과값을 반환하고싶으면 객체에 담아서 줘야한다. 구현부 : 메서드 호출시 수.. 2020. 12. 13. 자바의정석 ch6. 선언위치에 따른 변수의 종류 선언위치에 따른 변수의 종류 변수의 종류는 선언위치(클래스영역, 메서드 영역)에 따라 세가지로 나누어진다. (iv, cv, lv) 1. 클래스 영역 (클래스 시작 ~ 끝) 클래스 영역에서는 선언문만 가능하다. (변수, 메서드 선언) y = x + 3;같은 문장들은 들어갈 수 없음 선언문은 순서가 없음 iv : instance variable cv : static + iv -> class variable iv는 인스턴스가 생성되었을 때 만들어진다. -> 객체는 iv 변수의 묶음이다. iv는 참조변수가 없어지면 GC에 의해 제거된다. cv는 클래스가 메모리에 올라갈 때 만들어진다. (로딩) 따라서 cv는 객체생성을 안해도 아무때나 사용가능하지만 iv는 객체생성을 해야 사용이 가능하다. 더보기 CPU는 속도차.. 2020. 12. 13. 자바의정석 ch6. 클래스의 정의 클래스의 정의 1. 설계도 2. 데이터와 함수의 결합 3. 사용자 정의 타입 데이터와 함수의 결합 관점 변수 -> 배열 -> 구조체 -> 클래스 1. 변수는 하나의 데이터를 저장할 수 있는 공간 2. 배열은 같은 타입의 여러 데이터를 하나로 저장할 수 있는 공간 3. 구조체는 서로 관련된 여러 데이터 (다른 타입도 ok) 하나로 저장할 수 있는 공간 -> 서로 관련있는 것들을 하나로 묶어서 다루면 편리한 일이 많음 4. 클래스는 데이터와 함수의 결합 (구조체 + 함수) -> 함수가 작업하는 데이터를 같이 묶어놓는 것이 편리하다~ 사용자 정의 타입 관점 사용자 정의 타입으로 우리가 원하는 타입을 직접 만들 수 있다. 시간을 다루고싶은데 시간을 저장하는 타입이 없다고 가정해보자. int hour; int m.. 2020. 12. 12. 자바의정석 ch6. 객체 배열 객체 배열 == 참조변수 배열 Tv tv1, tv2, tv3; -> Tv[] tvArr = new Tv[3]; tvArr [0x100] ---> [null][null][null] (순서대로 tvArr[0], tvArr[1], tvArr[2]) 참조변수의 기본값은 null이므로 자동 초기화됨 tvArr[0] = new Tv(); // 객체를 생성해서 배열의 각 요소에 저장 tvArr[1] = new Tv(); tvArr[2] = new Tv(); 위 식을 간단히 하면 Tv[] tvArr = {new Tv(), new Tv(), new Tv()}; 객체 배열만 생성하면 배열에 null값 밖에 없으므로 다음과 같이 객체를 생성해서 참조변수가 가리키게 하여 null값을 객체의 주소로 채워줘야 한다 ! 2020. 12. 12. 자바의 정석 ch6. 객체의 생성과 사용 과정 클래스 작성 (설계도) -> 객체 생성 (제품) -> (리모콘으로) 객체 사용 (제품 사용) 객체의 생성 Tv t ; // 참조변수 (리모콘) t = new Tv(); // 객체 Tv t = new Tv(); Tv는 기본형 8개에 포함이 안되므로 참조형 객체를 다루려면 반드시 참조변수(리모콘)가 필요하고, 대입연산을 이용해 티비와 리모콘을 연결해줘야 한다. 객체의 사용 객체가 가진 변수와 메서드를 사용 (이때 무조건 리모콘을 사용해서 접근해야 함!!!!!!) t.channel = 7; // 변수 사용 t.channelDown(); // 메서드 사용 System.out.println("현재 채널은 " + t.channel + " 입니다."); // t가 가리키는 객체의 변수 channel 만약 Tv .. 2020. 12. 12. 자바의 정석 ch6. 클래스와 객체 우리는 실제세계를 클래스와 객체로 정의하여 소프트웨어화할 수(코드로 만들 수) 있다 ! ex) 오디오 플레이어를 기계로만 사용하다가 컴퓨터로도 사용할 수 있음 (하드웨어 -> 소프트웨어) 클래스 ? 객체를 정의해놓은 것 객체의 설계도 역할을 하며, 객체를 생성하는데 사용된다. 클래스를 설계하는 이유는 클래스를 한번만 잘 만들어놓으면 매번 그에 맞춰서 객체를 생성하면 되기때문에 제품을 만들기 쉬워지기 때문이다. 객체 ? 실제로 존재하는 것, 설계도로 만들어진 제품 객체를 사용한다는 것은 객체가 가진 속성과 기능을 사용하는 것이다. 하지만 클래스는 객체를 생성하는 데 사용될 뿐, 객체 그 자체는 아니다. 따라서 우리가 원하는 기능의 객체를 사용하기위해서는 클래스로부터 객체를 먼저 생성해야 한다. 클래스로부터.. 2020. 12. 12. 이전 1 2 3 다음