클래스_ 주찬민
클래스 : 객체를 생성하는 틀
•
객체를 만들기 위해 먼저 클래스가 정의되어야 한다.
•
클래스 정의되면 해당 클래스로 참조 변수 선언을 하고 객체를 생성할 수 있다.
•
객체란 .class를 메모리로 올린 것이다.
클래스 정의
클래스는 일반적으로 다음과 같이 정의한다.
(접근 제어자) clacc 클래스 이름 {
멤버 변수 (필드);
메서드;
}
Java
복사
//예시
public class Circle {
int radius;
String color;
double calcArea() {
return 3.14 * radius * radius;
}
}
Java
복사
•
클래스 정의 시 ‘public’ 등의 접근 지정자를 적는다.
자바 접근 지정자(access modifier)
•
class 키워드로 클래스를 선언하며, 클래스 이름의 첫 글자는 대문자로 시작하는 것이 관습이다.
•
클래스는 생성자 메서드를 갖는다.
객체_성현식
•
객체 생성
Car car = new Car()
Car : 자료형 (사용할 class)
car : 메모리에 저장하여 불러올 변수
new : 메모리를 할당하는 과정
Car() : Car 클래스의 생성자를 호출
class Circle {
int radius;
String color;
double calcArea() {
return 3.14*radius*radius;
}
}
public class CircleTest {
public static void main(String[] args) {
Circle obj;
obj = new Circle();
obj.radius = 100;
obj.color = "blue";
double area = obj.calcArea();
System.out.println("원의 면적=" + area);
}
}
Java
복사
위에 Circle 이라는 class가 있다.
두개의 필드와 하나의 메소드를 가진 이 class에 값을 주어 이를 활용하기 위해 다른 class인
CircleTest 에서 이를 new로 불러와 객체로 만들었다.
객체로 만들어진 obj에는 값이 저장되어 활용되었다.
이처럼 객체는 내가 원하는 class를 활용하기 위해 메모리에 일시적으로 저장해두는 대상이다.
•
구문 해석
Car car = new Car()
Car : 자료형 (사용할 class)
car : 메모리에 저장하여 불러올 변수
new : 메모리를 할당하는 과정
Car() : Car 클래스의 생성자를 호출
메소드와 String_장진선
메소드(Method)
메소드(Method) : 특정 작업을 수행하기 위한 명령문의 집합.
※ 보통 함수와 메소드가 공존하는 언어(예:파이썬)에서는 두 개를 구분하여 말하기도 하지만 자바는 보통 메소드와 함수를 구분하여 말하지 않는다. 다만 자바에서 사용되는 함수의 정확한 명칭은 메소드이다.
메소드 사용 목적
- 반복 적인 프로그래밍의 중복 코드 제거
- 코드의 가독성을 높임
- 프로그램 문제 발생 시 손쉬운 유지 보수
메소드 정의 방법
접근 제어자 반환 타입 메소드 이름(매개변수 목록) { // 선언부
// 구현부
}
메소드 정의_예제
메소드 호출 방법
1. 객체참조변수이름.메소드이름(); // 매개변수가 없는 메소드의 호출
2. 객체참조변수이름.메소드이름(인수1, 인수2, ...); // 매개변수가 있는 메소드의 호출
메소드 호출_예제
문자열(String)
•
String 객체 대부분은 원시(Primitive) 타입으로 취급하므로 new 키워드를 사용할 필요가 없다.
•
Java에서 String은 특별한 참조 자료형이다. new 생성자를 이용해서 인스턴스를 만들고 heap영역에 올라가지만, 다른 참조형과는 다르게 한번 객체가 생성되면 해당 값은 변하지가 않는다.
String 선언 방법
1.
생성자인 new 연산자를 통해 문자열 생성
2.
문자열 리터럴 생성
String str1 = new String("madplay");
String str2 = "madplay";
Plain Text
복사
2가지 방식의 차이점
문자열 선언과 영역 매핑
String str1 = "madplay";
String str2 = "madplay";
String str3 = new String("madplay");
String str4 = new String("madplay");
str1 = str2;
// ... 생략
Plain Text
복사