Skip to content
Home » 자바 클래스 선언 | [자바 입문] 클래스 선언 상위 156개 베스트 답변

자바 클래스 선언 | [자바 입문] 클래스 선언 상위 156개 베스트 답변

당신은 주제를 찾고 있습니까 “자바 클래스 선언 – [자바 입문] 클래스 선언“? 다음 카테고리의 웹사이트 kk.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: kk.taphoamini.com/wiki. 바로 아래에서 답을 찾을 수 있습니다. 작성자 Programmers 이(가) 작성한 기사에는 조회수 12,730회 및 좋아요 29개 개의 좋아요가 있습니다.

Table of Contents

자바 클래스 선언 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 [자바 입문] 클래스 선언 – 자바 클래스 선언 주제에 대한 세부정보를 참조하세요

강의 자세히 보기: https://programmers.co.kr/learn/courses/5/lessons/137
이 자바 입문 강의 뿐만 아니라, 개발자들을 널리~ 이롭게 할 각종 프로그래밍 온라인 강의가 프로그래머스 웹사이트에 준비되어 있습니다!
웹에서 내가 작성한 소스코드가 바로 컴파일되어, 실행 결과를 눈으로 확인할 수 있는 강력한 실습 시스템을 통해 언제 어디서나 당신이 편한 방식으로 프로그래밍 실력을 높여보세요.
* http://www.programmers.co.kr/learn

자바 클래스 선언 주제에 대한 자세한 내용은 여기를 참조하세요.

[자바(JAVA) 개념] 클래스(class) 선언방법 / 필드 / 생성자

[자바(JAVA) 개념] 클래스() 선언방법 / 필드 / 생성자. devuna 2019. 12. 1. 14:14. 320×100. 클래스를 프로그래밍적 언어로 표현하자면 ‘어떠한 객체의 …

+ 여기를 클릭

Source: devuna.tistory.com

Date Published: 7/25/2021

View: 2193

[Java] class 선언 방법, 클래스란 무엇인가 – 리그캣

목표. Java의 Class에 대해 학습하기. 학습할 것 (필수). 클래스 정의하는 방법; 객체 만드는 방법 (new 키워드 이해하기); 메소드 정의하는 방법 …

+ 자세한 내용은 여기를 클릭하십시오

Source: league-cat.tistory.com

Date Published: 10/7/2021

View: 5084

클래스의 선언 – 코딩의 시작, TCP School

클래스의 선언. 클래스()란 객체 지향 프로그래밍의 추상화(abstraction)라는 개념을 직접 구현한 것이라 할 수 있습니다. 자바에서는 개발자의 편의를 위해 유용 …

+ 여기에 더 보기

Source: www.tcpschool.com

Date Published: 10/10/2022

View: 4556

자바의 클래스(선언, 필드, 생성자) – velog

자바의 기초 프로그래밍 클래스, 선언하는 방법에서부터 필드에 대한 내용과 생성자 에 대해서.

+ 자세한 내용은 여기를 클릭하십시오

Source: velog.io

Date Published: 4/24/2021

View: 8217

[Java] 클래스(class)의 개념 – 단미라이프 – 티스토리

클래스로부터 객체를 선언하는 과정을 클래스의 인스턴스화라고 합니다. 자바에서는 하나의 클래스로부터 여러개의 인스턴스를 생성할 수 있습니다.

+ 여기에 더 보기

Source: danmilife.tistory.com

Date Published: 7/2/2021

View: 7574

Java 기초 – 클래스(class) 선언하기 – 네이버 블로그

Java 기초 – 클래스() 선언하기 … 클래스는 다수의 속성과 다수의 기능을 갖을 수 있다. ​. 속성 – 멤버변수 … abstract : 추상클래스 선언.

+ 더 읽기

Source: m.blog.naver.com

Date Published: 10/13/2021

View: 9779

[Java] 자바 클래스(Class) 사용법(선언, 생성, 사용) & 예제

자바 프로그래밍을 OOP(객체 지향 프로그래밍)이라고도 합니다. 현실 세계에서도 특정 제품을 만들 때 여러 가지 부품들을 각각 만들어 하나로 조립 …

+ 여기에 더 보기

Source: coding-factory.tistory.com

Date Published: 1/10/2022

View: 9971

[JAVA] 클래스란? (클래스, 객체, new, 메소드, 생성자, this…)

생성자도 메소드 처럼 매개변수를 선언하여 호출 시 값을 넘겨 받아서 인스턴스 초기화 작업에 사용될 수 있다. ex) Car { String color; …

+ 자세한 내용은 여기를 클릭하십시오

Source: doozi0316.tistory.com

Date Published: 11/24/2022

View: 1013

Java – Class선언, Method() 선언 – 미오

Java – Class선언, Method() 선언 … * – 클래스 내에는 객체의 속성을 저장할 멤버변수를 선언하고,. * 객체의 동작을 정의할 메서드를 정의한다. * – …

+ 자세한 내용은 여기를 클릭하십시오

Source: cuteduck.tistory.com

Date Published: 9/10/2022

View: 571

[JAVA] 자바 클래스란, 클래스 객체 생성하는 방법 – 꽁담

클래스 선언하기. 물건의 상태 특성, 기능을 정리한 클래스를 작성하는 작업을 ‘클래스 선언’ 이라고 합니다. 클래스 명 …

+ 자세한 내용은 여기를 클릭하십시오

Source: mozi.tistory.com

Date Published: 10/15/2022

View: 3068

주제와 관련된 이미지 자바 클래스 선언

주제와 관련된 더 많은 사진을 참조하십시오 [자바 입문] 클래스 선언. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

[자바 입문] 클래스 선언
[자바 입문] 클래스 선언

주제에 대한 기사 평가 자바 클래스 선언

  • Author: Programmers
  • Views: 조회수 12,730회
  • Likes: 좋아요 29개
  • Date Published: 2016. 5. 25.
  • Video Url link: https://www.youtube.com/watch?v=Bfn8w2Ed6Jk

[자바(JAVA) 개념] 클래스(class) 선언방법 / 필드 / 생성자

728×90

클래스를 프로그래밍적 언어로 표현하자면 ‘어떠한 객체의 변수(valiable) , 메소드(method) 의 집합이다’라고 표현할 수 있으며, 현실세계에 빗대어 말하자면 동일한 속성과 행위를 수행하는 객체의 집합이라고 할 수 있다.

그렇다면 클래스는 어떻게 선언하는가 ?

1. 클래스 작성 규칙

하나 이상의 문자로 이루어져야 한다..

첫 번째 글자에는 숫자가 올 수 없다 .

$,_ 외에는 특수문자 사용불가 ($port (o), c@r(x))

자바 명령어 , 키워드는 사용할 수 없다.(while, for, int 등 사용불가 )

이름은 대소문자를 구분한다 .( 보통 , 첫번째 글자는 대문자로 작성 )

2. 선언방법

클래스 변수의 선언은 다음과 같다.

클래스명 선언할 변수명;

변수명 = new 클래스();

Product p; p = new Product();

→ 묶어서 한 개의 실행문으로 작성도 가능하다.

클래스 변수명 = new 클래스();

Product p = new Product();

위의 실행문이 실행되면, 메모리에 클래스 변수와 객체가 생성된다.

3. 클래스의 구성 멤버

클래스의 구성 멤버에는 필드(field), 생성자(constructor), 메소드(method) 가 있다. 이 구성 멤버들은 생략되거나 여러 개 작성될 수 있다.

필드= 객체의 데이터가 저장되는 곳!

필드는 객체 고유의 데이터, 상태 정보를 저장하는 곳이다.

선언 형태는 변수 선언과 비슷하지만, 변수는 생성자와 메소드 내에서만 사용되고 생성자와 메소드가 실행 종료되면 자동 소멸된다. 하지만 필드는 생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는 한 객체와 함께 존재한다. 클래스 선언 바로 밑에서 선언되며, 생성자와 메소드 보다 위에서 선언된다.

<필드의 타입 종류>

분류 데이터 타입 초기값 정수 타입 byte 0 char \u0000(빈 공백) short 0 int 0 long oL 실수 타입 float 0.0F double 0.0 논리 타입 boolean false 참조 타입 배열 클래스(String 포함) 인터페이스 null

생성자

생성자는 객체 생성 시 초기화를 담당한다. 필드를 초기화하거나, 메소드를 호출하여 객체를 사용할 준비를 한다. 생성자는 메소드와 비슷하게 생겼지만, 클래스 이름으로 되어있고 리턴 타입이 없다. (클래스의 이름과 생성자의 이름은 동일하다는 점 기억할 것!)

생성자를 실행시키지 않고는 클래스로부터 객체를 만들 수 없다. new연산자에 의해 생성자가 성공적으로 실행되면 힙(heap) 영역에 객체가 생성되고 객체의 주소가 리턴된다. 리턴된 객체의 주소는 클래스 타입 변수에 저장되어 객체에 접근할 때 이용된다.

오버 로딩(overloading)

매개변수의 타입, 개수, 순서를 달리 한 생성자를 여러 개 선언하는 것이다.

public class Product{ Product(){ } //기본생성자 Product(String name, int price){ … } //매개변수 String , int 받는 생성자 Product(String name, String color, int price, ){ … }//매개변수 String , String ,int 받는 생성자 }

다른 생성자 호출하기 (this())

생성자 오버 로딩이 많아질 경우 생성자 간 중복된 코드 발생한다.

이때, 기존에 있는 생성자를 호출하여 기존 내용을 가져오는 방법을 사용할 수 있다.

this()는 자기 클래스의 다른 생성자를 호출하는 코드로, 생성자 내에서 반드시 첫 줄에 사용하여야 한다.

메소드

메소드는 객체의 동작을 수행하는 블록을 뜻한다. 메소드를 호출하게 되면 중괄호 블록에 있는 모든 코드들이 일괄적으로 실행된다. 메소드는 필드를 읽고 수정하는 역할도 하지만, 다른 객체를 생성하여 다양한 기능을 수행하기도 한다. 또한, 객체 간의 데이터 전달의 수단으로도 사용된다. 외부로부터 매개 값을 전달받을 수도 있고, 실행한 값을 리턴할 수도 있다.

728×90

[Java] class 선언 방법, 클래스란 무엇인가

목표

Java의 Class에 대해 학습하기

학습할 것 (필수)

클래스 정의하는 방법

객체 만드는 방법 (new 키워드 이해하기)

메소드 정의하는 방법

생성자 정의하는 방법

this 키워드 이해하기

과제 (Optional)

int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요.

int value, Node left, right를 가지고 있어야 합니다.

BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요.

DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요.

클래스 정의하는 방법

클래스란 ?

자전거라는 클래스가 있다고 생각해보자. 바퀴, 벨 등은 클래스의 데이터가 된다. 그리고 바퀴는 돌리는 역할, 벨은 울리는 역할을 하게 되는데 이것이 클래스 관점에서 보면 연산이다.

각 클래스 안에서 역할에 따라 각 클래스의 기능을 서술해 나가고, 사람에 따라 같은 프로그램을 만들더라도 여러가지 관점으로 만들 수 있다.

클래스는 아래와 같이 정의한다.

public class 클래스 이름 { // 프로그램 시작 시점 public static void main(String[] args) { …. } }

객체란?

객체(Object)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른것과 식별 가능한 것을 말한다. 객체는 속성과 동작으로 구성되어 있다고 보면 되는데 자바에서는 이 속성과 동작을 각각 필드(field)와 메소드(method)라고 부른다.

먼가 어렵다…

학창 시절 나는 클래스(Class)를 붕어빵 틀, 객체(Object)를 붕어빵으로 배웠다. 객체는 클래스로 찍어낸 고유한 특성이라고 생각하면 될 것 같다. 붕어빵에 어떠한 재료를 붙느냐에 따라 다른 붕어빵들이 생성되기 때문이다. 슈크림 붕어빵이 먹고싶다.

객체는 다음과 같이 생성한다

Java에서는 객체를 New 연산자로 생성한다.

아래와 같은 클래스가 있다고 가정해보자.

class Bicycle { int cadence; int speed; int gear; // 생성자는 아래에서 배운다. }

main 문에서는 다음과 같이 객체를 생성한다.

public class BicycleTest { public static void main(String[] args) { Bicycle b = new Bicycle(); // 추가적으로 b객체를 통해 객체 멤버변수에 접근 가능하다. b.cadence = 10; b.speed = 13; b.gear = 10; } }

위를 참고하여 보면 객체 생성 과정은 아래와 같다.

new 연산자가 b 객체에 저장될 메모리 공간 할당 생성자가 b 객체를 초기화 (위에서는 default 생성자가 동작한다.) new 연산자가 새로 생성된 객체의 주소(reference) b 변수에 저장 b를 통하여 Bicycle에 접근 가능하다

메소드는 어떻게 정의할까?

메소드는 기능 즉, 행동을 나타낸다. 클래스에서 메소드를 작성하여 사용하는 이유는 중복되는 코드의 반복적인 프로그래밍을 피할 수 있기 때문이다. 또한, 모듈화로 인하여 코드의 가독성도 좋아진다.

프록그램에서 문제가 발생하거나 기능의 변경이 필요할 때 손쉽게 유지보수 할 수 있다는 장점도있다.

메소드를 작성할 때는 되도록 하나의 메소드가 하나의 기능만을 수행하도록 작성하는 것이 좋다.

Java에서 메소드는 아래와 같이 정의한다.

접근제어자 반환타입 메소드이름(매개변수목록) { …실행 문단 }

Bicycle을 예제로 작성하면 기어를 변동하거나 스피드를 올리는등의 행동을 할것이다. 이것을 메소드로 정의해보자

기어를 변동하는 메소드

void chageGear(int newValue) { gear = newValue; }

메소드 전체 구현

class Bicycle { // 멤버 변수 정의 int cadence = 0; int speed = 0; int gear = 1; // 메소드 정의 void changeCadence(int newValue) { cadence = newValue; } void chageGear(int newValue) { gear = newValue; } void speedUp(int increment) { speed = speed + increment; } void applyBrakes(int decrement) { speed = speed – decrement; } void printStates() { System.out.println(“cadence:” + cadence + ” speed:” + speed + ” gear:” + gear); } }

해당 메서드를 호출하는 예시는 아래와 같다. 속도를 10 올려보겠다.

public class BicycleTest { public static void main(String[] args) { Bicycle b = new Bicycle(); b.speedUp(10); } }

해당 스피드는 기본 스피드 0 + 10 = 10이 되었을 것이다.

ref

생성자란??

객체를 생성할때 항상 실행되는 것으로 이해하면 될것같다. 생성자는 반환값이 없으며 클래스명과 메소드명이 동일 해야한다.

생성자 정의는 어떻게 할까?

그러면 Bycicle에서는 생성자를 다음과 같이 정의할 수 있다.

class Bicycle { // 생성자 정의 public Bicycle() { } }

생성자를 통해서 초기 멤버변수의 값 세팅이 가능하다.

class Bicycle { int cadence = 0; int speed = 0; int gear = 1; Bicycle() { cadence = 10; speed = 10; gear = 10; } }

ref

this 키워드는 무엇일까?

자바에서 this는 객체, 자기 자신을 나타낸다.

주로 3가지 형태로 사용되고 있으며 하나씩 살펴보자.

클래스의 속성과 생성자/메소드의 매개변수(input parameter)의 이름이 같은 경우

아래와 같은 코드에서는 cadence = cadence가 되는데 여기서는 좌측의 cadence는 Bicycle 객체의 cadence 속성을 가르키고 있다는 사실을 인지하지 못한다.

실제 객체에는 넘어온 파라미터 cadence값이 입력되지 않는다.

class Bicycle { int cadence = 0; int speed = 0; int gear = 1; Bicycle(int cadence, int speed, int gear) { cadence = cadence; speed = speed; gear = gear; } }

아래와 같이 바꾸어 객체에 주입시켜야 한다.

class Bicycle { int cadence = 0; int speed = 0; int gear = 1; Bicycle(int cadence, int speed, int gear) { this.cadence = cadence; this.speed = speed; this.gear = gear; } }

클래스에 오버로딩된 다른 생성자 호출

하나의 클래스에 여러개의 생성자가 오버로딩 되어 있을 때, 일부분을 제외하고는 서로 중복된 코드를 가지고 있는 경우가 많다.

내부에 정의된 다른 생성자를 호출하여 코드의 중복을 피하고 깖금한 소스를 작성할 수 있다.

같은 클래스에 오버로딩된 다른 생성자를 호출때에도 this 키워드가 사용된다.

class Bicycle { int cadence; int speed; int gear; Bicycle(int cadence, int speed) { // Bicycle(int cadence, int speed, int gear)를 호출 this(cadence, speed, 0); } Bicycle(int cadence, int speed, int gear) { this.cadence = cadence; this.speed = speed; this.gear = gear; } }

객체 자신의 참조값을 전달하고 싶을 때

어떤 메소드에서는 내부에서 호출하고자 하는 메소드의 매개변수(input parameter)로 객체, 자기 자신의 참조값을 전달하고 싶은 경우가 있다.

이럴때에는 get~Instance() 메소드의 구현부분에서처럼 this 키워드를 이용함으로써 구현이 가능하다.

class Bicycle { int cadence; int speed; int gear; Bicycle(int cadence, int speed, int gear) { this.cadence = cadence; this.speed = speed; this.gear = gear; } public Bicycle getBicycleInstance() { return this; } }

전체적인 정의는 아래와 같이 한다.

public//공개 범위 class 클래스이름 { // 멤버변수 int a; int b; // 생성자 클래스이름() { a = 10; b = 15; } // 메서드 메서드명() { } // 프로그램 시작 시점 public static void main(String[] args) { … } }

Bicycle이라는 클래스를 만들어 보자.

class Bicycle { int cadence = 0; int speed = 0; int gear = 1; Bicycle() { this.cadence = 10; this.speed = 10; this.gear = 10; } void changeCadence(int newValue) { cadence = newValue; } void chageGear(int newValue) { gear = newValue; } void speedUp(int increment) { speed = speed + increment; } void applyBrakes(int decrement) { speed = speed – decrement; } void printStates() { System.out.println(“cadence:” + cadence + ” speed:” + speed + ” gear:” + gear); } }

코딩교육 티씨피스쿨

클래스의 선언

클래스의 선언

클래스(class)란 객체 지향 프로그래밍의 추상화(abstraction)라는 개념을 직접 구현한 것이라 할 수 있습니다.

자바에서는 개발자의 편의를 위해 유용하게 사용할 수 있는 많은 수의 클래스를 미리 정의하여 제공하고 있습니다.

또한, 개발자가 원하는 동작을 하는 새로운 클래스를 손쉽게 작성할 수도 있습니다.

자바에서 클래스를 선언하는 방법은 접근 제어자와 함께 class 키워드를 사용하면 됩니다.

자바에서 클래스는 다음과 같이 선언합니다.

정의 접근제어자 class 클래스이름 { 접근제어자 필드1의타입 필드1의이름; 접근제어자 필드2의타입 필드2의이름; … 접근제어자 메소드1의 원형 접근제어자 메소드2의 원형 … };

다음은 Car라는 이름의 클래스를 선언하는 그림입니다.

접근 제어자는 객체 지향 프로그래밍의 특징 중 하나인 정보 은닉(data hiding)을 위한 키워드입니다.

public 멤버는 모든 객체에서 접근할 수 있지만, private 멤버는 해당 객체 내의 멤버 변수나 메소드만이 접근할 수 있습니다.

접근 제어자에 대한 더 자세한 사항은 자바 접근 제어자 수업에서 확인할 수 있습니다.

자바 접근 제어자 수업 확인 =>

인스턴스의 생성

위와 같이 선언된 클래스의 정의를 가지고 다음과 같은 순서대로 Car 객체의 인스턴스를 생성할 수 있습니다.

우선 다음과 같이 객체를 참조하기 위한 참조 변수를 먼저 선언합니다.

선언 클래스이름 객체참조변수이름;

예제 Car myCar;

그 후에 new 키워드를 사용하여 인스턴스를 생성하고, 해당 인스턴스의 주소를 미리 선언한 참조 변수에 저장하여 사용합니다.

선언 객체참조변수이름 = new 클래스이름();

예제 myCar = new Car();

또한, 다음과 같이 참조 변수의 선언과 인스턴스의 생성을 동시에 할 수도 있습니다.

선언 클래스이름 객체참조변수이름 = new 클래스이름();

예제 Car myCar = new Car();

연습문제

[Java] 클래스(class)의 개념

반응형

1. 클래스의 개념

클래스(class)와 객체

자바에서 클래스란 객체를 만들어 내기 위한 설계도 또는 틀 과 같은 의미로 사용됩니다.

과 같은 의미로 사용됩니다. 클래스 모양 그대로 생성된 실체를 객체라고 합니다.

쉽게 이해해하자면 붕어빵 틀과 붕어빵 사이의 관계를 클래스와 객체라고 볼 수 있다. 붕어빵 틀은 자바 클래스이고, 붕어빵은 자바 객체이다. 붕어빵은 틀의 모양대로 만들어지지만 앙코붕어빵, 슈크림붕어빵, 크림치즈붕어빵 등 서로 조금씩 다릅니다.

클래스와 객체의 관계

인스턴스(instance)

클래스로부터 객체를 선언하는 과정 을 클래스의 인스턴스화라고 합니다.

을 클래스의 인스턴스화라고 합니다. 자바에서는 하나의 클래스로부터 여러개의 인스턴스를 생성할 수 있습니다.

2. 클래스의 구성

자바 클래스는 class 키워드 를 사용하여 선언한다.

를 사용하여 선언한다. 클래스의 구성요소를 멤버(member)라고 부르며, 멤버는 속성을 표현하는 필드(filed) 와 기능을 나타내는 메소드(method ) 를 가집니다.

와 기능을 나타내는 를 가집니다. 또한 클래스는 생성된 객체의 필드를 초기화해주는 메소드인 생성자(Constructor) 를 가집니다.

접근제어자 class 클래스이름 { 접근제어자 필드1의타입 필드1의이름; 접근제어자 필드2의타입 필드2의이름; … 접근제어자 메소드1의 원형 접근제어자 메소드2의 원형 … };

필드(field)

객체 내에 값을 저장할 멤버 변수를 필드라고 부른다.

클래스 내에서 선언된 위치에 따라 클래스변수(static variable), 인스턴스변수(instance variable), 지역변수(local variable)로 구분된다.

메소드(method)

메소드는 함수이며 객체의 행동을 구현한다.

생성자(constructor)

클래스의 이름과 동일한 메소드를 생성자라고 한다.

생성자는 객체가 생성될 때 자동으로 호출되는 특별한 메소드이다.

즉, 자바에서 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 메소드를 생성자라고 한다.

3. 클래스의 선언

자바에서 클래스는 다음과 같이 접근제어자와 함께 class 키워드를 사용하여 선언합니다.

//접근권한자 클래스선언 클래스이름 public class Circle { // 원 클래스 선언 public int radius; // 원의 반지름 필드 public String name; // 원의 이름 필드 public Circle() { // 원의 생성자 메소드 } public double getArea() { // 원의 면적 계산 메소드 return 3.14*radius*radius } }

4. 인스턴스 생성

위와 같이 선언된 클래스를 가지고 Circle객체의 인스턴스를 생성할 수 있다.

레퍼런스 변수 선언

Circle pizza; //객체 참조를 위한 참조변수 pizza 선언

Circle 객체를 생성한 것이 아니라, 변수 pizza는 Circle클래스의 객체에 대한 주소를 가지는 변수일 뿐이다.

new연산자로 객체 생성

pizza = new Circle();

new 연산자를 이용해 객체를 생성한다.

생성된 Circle객체의 주소를 pizza 변수에 대입한다.

레퍼런스 변수 선언과 동시에 객체 생성

Circle pizza = new Circle();

레퍼런스 변수 선언과 객체 생성은 동시에 할 수 있다.

5. 객체 멤버 접근

객체의 멤버에 접근할 때는 레퍼런스 변수 뒤에 .(점) 연산자를 붙인다.

pizza.radius = 50;

반응형

Java 기초 – 클래스(class) 선언하기

클래스의 구성

​클래스 : 헤더 + 바디

클래스는 속성과 기능들의 집합이다. 클래스는 다수의 속성과 다수의 기능을 갖을 수 있다.

속성 – 멤버변수

기능 – 메소드(멤버함수) (생성자도 일종의 메소드)

클래스 선언(헤더)

※ 한정자

public : 접근제어자​. 접근 제한 없음.

(default) : 접근제어자. 같은 패키지내의 클래스에서 접근 가능. 실제로 default 적지않음.

final : 상속금지. 서브클래스를 가질 수 없음(변형금지).

abstract : 추상클래스 선언. 클래스 안에 추상 메소드 있음.

클래스 선언(몸통)

{,}사이에 멤버변수, 메소드, 생성자를.​

멤버 변수 – 클래스 내부의 메소드 밖에 선언된 변수

생성자 – 클래스 이름과 똑같은 메소드

메소드 – 생성자 외의 모든 메소드

클래스 선언 예​

class Info 이부분이 클래스 header.

한정자 없음(default) – 같은 패키지 안에서 사용가능.

클래스 이름 – Info (첫문자 대문자 관행)

{, }사이가 클래스 body.

멤버변수, 생성자, 메소드 외 어떤것도 클래스 바디에 올 수 없음.

[Java] 자바 클래스(Class) 사용법(선언, 생성, 사용) & 예제

자바 프로그래밍을 OOP(객체 지향 프로그래밍)이라고도 합니다. 현실 세계에서도 특정 제품을 만들 때 여러 가지 부품들을 각각 만들어 하나로 조립해서 제품을 생산하듯이 프로그래밍적으로도 여러 가지 객체(Object)를 각각 만들어서 하나로 조립하는 프로그래밍 기법을 객체 지향 프로그래밍이라고 합니다. 자바에서 객체는 클래스를 통해 생성하실 수 있습니다.

클래스 구조

클래스의 구성 맴버 설명 필드(Field) 객체의 데이터가 저장되는 곳 생성자(Constructor) new 연산자로 호출되는 메소드로 객체 생성 시 필드의 초기화를 담당 메소드(Method) 객체의 동작에 해당하며 클래스의 다양한 동작을 구성

클래스 내부에는 클래스의 속성을 나타내는 필드와 클래스의 동작을 나타내는 메소드 그리고 클래스를 생성할 때 호출할 수 있는 생성자가 있습니다. 생성자는 new 연산자를 통해 호출할 수 있는 메소드라고 생각하시면 되며 주로 필드의 변수들을 초기화하는 역할을 합니다.

클래스 선언 및 인스턴스 생성

클래스 선언

class 클래스명{ }

class Student{ //필드(Field) String name; //이름 int age; //나이 int korean_scroe; //국어성적 int math_score; //수학성적 int english_score; //영어성적 //생성자(Constructor) Student(String name, int age, int kor_score, int mat_score, int eng_score){ this.name = name; this.age = age; this.korean_scroe = kor_score; this.math_score = mat_score; this.english_score = eng_score; } //메소드(Method) public void printScore() { System.out.println(“이름 : ” + name); System.out.println(“나이 : ” + age); System.out.println(“국어성적 : ” + korean_scroe); System.out.println(“수학성적 : ” + math_score); System.out.println(“영어성적 : ” + english_score); } }

클래스는 위와 같이 class 클래스명{} 와 같은 형태로 만들어주시면 되며 내부에 필드, 생성자, 메소드를 정의하시면 됩니다. 추가로 생성자와 메소드는 오버 로딩이 가능합니다. 이렇게 생성된 클래스는 하나의 객체 설계도라고 생각하시면 되며 이렇게 정의된 클래스를 통해 동일한 객체를 무한정 찍어내실 수 있습니다. 이렇게 찍어낸 객체를 인스턴스라고 합니다.

쉽게 생각해서 붕어빵 틀을 클래스, 붕어빵을 인스턴스라고 생각하시면 이해가 쉬울 듯 합니다.

※ 자바 this의 의미가 궁금하시다면 아래 글을 참고해주세요.

[Java] 자바 this의 의미와 사용법

인스턴스 생성

public class Main { public static void main(String[] args) { //생성자가 없는 경우 Student student1 = new Student(); //생성자가 있는 경우 Student student2 = new Student(“홍길동”, 18, 100, 90, 80); } }

클래스를 통해 객체를 생성하기 위해서는 new 연산자를 사용하시면 됩니다. new 연산자 뒤에는 생성자가 오는데, 생성자는 클래스() 형태를 가지고 있으며 생성자의 여부에 따라 인자 값을 맞춰서 넣으시면 됩니다. 이렇게 new 연산자로 생성된 객체는 힙 메모리 영역에 생성되며 이렇게 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 합니다.

인스턴스 메소드 사용

class Student{ //필드(Field) String name; //이름 int age; //나이 int korean_scroe; //국어성적 int math_score; //수학성적 int english_score; //영어성적 //생성자(Constructor) Student(String name, int age, int kor_score, int mat_score, int eng_score){ this.name = name; this.age = age; this.korean_scroe = kor_score; this.math_score = mat_score; this.english_score = eng_score; } //메소드(Method) public void printScore() { System.out.println(“이름 : ” + name); System.out.println(“나이 : ” + age); System.out.println(“국어성적 : ” + korean_scroe); System.out.println(“수학성적 : ” + math_score); System.out.println(“영어성적 : ” + english_score); } } public class Main { public static void main(String[] args) { Student student = new Student(“홍길동”, 18, 100, 90, 80); student.printScore(); //인스턴스 메소드 호출 } }

인스턴스를 생성한 뒤 클래스에 정의되어있는 메소드를 호출하려면 위처럼. 를 활용하여 메소드를 호출하시면 됩니다.

[JAVA] 클래스란? (클래스, 객체, new, 메소드, 생성자, this…)

🍌 클래스

클래스

객체를 정의해 놓은 것

객체의 설계도 또는 틀

객체를 생성하는데 사용됨

클래스를 정의하는 방법

클래스란 객체를 정의한 것이므로, 클래스에는 객체의 모든 속성과 기능이 정의되어 있다.

class Tv { // 속성(변수) String color; boolean power; int channel; // 기능(메서드) void power() { power = !power; } void channelUp() { channel++; } void channelDown() { channel–; }

🍌 객체

객체

실제로 존재하는 것. 사물 또는 개념

객체의 용도는 객체가 가지고 있는 기능과 속성에 따라 다름

클래스에 정의된 내용대로 메모리에 생성된 것

객체 만드는 방법

인스턴스화

클래스로부터 객체를 만드는 과정

어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다.

객체 : 모든 인스턴스를 대표하는 포괄적인 의미

인스턴스 : 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미

객체의 구성 요소

속성(property) 멤버변수(member variable), 특성(attribute), 필드(field), 상태(state)

기능(function ) 메서드(method), 함수(function), 행위(behavior)

클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언 변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장

Tv t; // Tv 클래스 타입의 참조변수 t를 선언 t = new Tv(); // Tv인스턴스를 생성한 후, 생성된 Tv 인스턴스의 주소를 t에 저장

예)

class Tv { String color; boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { –channel; } } public class TvTest { public static void main(String[] args) { Tv t; t = new Tv(); t.channel = 7; t.channelDown(); System.out.println(“현재 채널은 ” + t.channel + “입니다.”); } }

new 연산자

클래스 변수 = new 클래스();

인스턴스(객체)를 생성해주는 역할

메모리(Heap 영역)에 데이터를 저장할 공간을 할당받고

그 공간의 참조값을 객체에게 반환하여 주고 이어서 생성자를 호출한다.

🍌 메서드

메서드

특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것

메서드 정의하는 방법

반환타입 메서드 이름(타입 변수명, 타입 변수명, …) // 선언부 { // 메서드 호출 시 수행될 코드 // 구현부 }

int add(int a, int b) // 선언부 { // 구현부 int result = a + b; return result; // 호출한 메서드로 결과를 반환하다. }

메서드 선언부

반환타입, 메서드 이름, 매개변수 선언으로 구성되어 있음.

반환타입 메서드 이름(매개 변수 선언) {};

int add(int x, inty) {};

💡 참고 – 인자(argument) 와 매개변수(parameter) 인자(argument) 메서드를 호출할 때 괄호 안에 지정해준 값

매개변수(parameter) 메서드를 선언할 때 정의한 것

메서드 구현부

메서드가 호출되었을 때 수행될 문장

메서드의 반환타입이 void 가 아닌 경우, 구현부 안에 return 반환값이 반드시 포함되어 있어야한다.

🍌 생성자

인스턴트가 생성될 때 호출되는 인스턴스 초기화 메서드

여기서 인스턴스 초기화란, 인스턴스 변수들을 초기화하는 것 을 뜻한다.

🚨 연산자 new가 인스턴스를 생성하는 것이지 생성자가 인스턴스를 생성하는 것이 아니다.

인스턴스 생성 과정 연산자 new에 의해서 메모리(heap)에 Card클래스의 인스턴스가 생성된다. 생성자 Card()가 호출되어 수행된다. 연산자 new의 결과로, 생성된 Card 인스턴스의 주소가 반환되어 참조변수 c에 저장된다.

Card c = new Card();

생성자의 조건

생성자의 이름은 클래스의 이름과 같아야한다.

생성자는 리턴 값이 없다.

생성자 정의하는 방법

기본 생성자

클래스이름() {} Card() {}

모든 클래스에는 반드시 하나 이상의 생성자가 정의되어 있어야한다.

생성자가 정의되어 있지 않을 경우, 컴파일러가 기본생성자를 추가해서 컴파일 한다.

기본 생성자는 위와 같이 아무 매개변수도, 아무 내용도 없는 것을 말한다.

매개변수가 있는 생성자

말그대로 매개변수가 있는 생성자다.

생성자도 메소드 처럼 매개변수를 선언하여 호출 시 값을 넘겨 받아서 인스턴스 초기화 작업에 사용될 수 있다.

ex)

class Car { String color; String gearType; int door; Car() {} // 기본 생성자 Car(String c, String g, int d) { // 생성자 color = c; gearType = g; door = d; } }

// 생성자를 사용하지 않았을 때 Car c = new Car(); c.color = “white”; c.grearType = “auto”; c.door = 4;

// 생성자 사용 시 Car c = new Car(“white”, “auto”, 4);

🍌 this

JAVA에서 this 는 객체, 자기자신을 나타낸다.

this를 사용하는 상황은 크게 3가지가 있다.

1. 클래스의 속성과 생성자/ 메소드의 매개변수의 이름이 같은 경우

this를 사용하지 않은 예

public class Fruit { public String name; public String color; public double weihgt; public int count; public Fruit(String name, String color, double weight, int count) { name = name; color = color; weight = weight; count = count; } public static void main(String[] args) { Fruit banana = new Fruit(“banana”, “yellow”, 5.0, 10); System.out.println(“name: ” + banana.name); // name: null System.out.println(“color: ” + banana.color); // color: null System.out.println(“weight: ” + banana.weihgt); // weight: 0.0 System.out.println(“count: ” + banana.count); // count: 0 } }

일반적으로 생성자 또는 set/get 메소드의 매개변수 이름은 클래스의 속성 이름과 동일하게 적용된다.

위에서 보여지는 생성자의 매개변수 역시 클래스 속성과 동일한 이름으로 정의되어 있다.

그런데 main 메소드에서 Fruit 객체를 생성하고 속성 값들을 출력해보니 예상치 못한 결과가 나타난다.

초기화가 이루어 지지 않았다. (“banana”, “yellow”, 5.0, 10); 라고 값을 입력했음에도 불구하고.

생성자의 구현 부분에서 name = name; 처럼 사용하게 되면

매개변수 name = 매개변수 name 형태가 되어 Fruit 객체의 name 속성에는 값이 입력되지 않는다.

즉, Java 는 좌측의 name 이 속성을 가리키고 있다는 사실을 인지하지 못한다.

이럴 때 this 키워드가 사용된다.

public class Fruit { public String name; public String color; public double weight; public int count; public Fruit(String name, String color, double weight, int count) { this.name = name; this.color = color; this.weight = weight; this.count = count; } public static void main(String[] args) { Fruit banana = new Fruit(“banana”, “yellow”, 5.0, 10); System.out.println(“name: ” + banana.name); // name: banana System.out.println(“color: ” + banana.color); // color: yellow System.out.println(“weight: ” + banana.weight); // weight: 5.0 System.out.println(“count: ” + banana.count); // count: 10 } }

this.name = name; 은 Fruit 객체의 name 속성 = 매개변수 name 형태가 되어 Fruit 객체의 속성이 값을 입력하게 된다.

여기서 this 키워드는 객체 자신의 속성을 나타내게 되는 것이다.

2. 클래스에 오버로딩된 다른 생성자 호출

생성자의 최상단에 사용되어야 한다.

public class Fruit { public String name; public String color; public double weight; public int count; public Fruit(String name, String color) { // Fruit(String name, String color, double weight, int count)를 호출 this(name, color, 0.0, 0); } public Fruit(String name, String color, double weight, int count) { this.name = name; this.color = color; this.weight = weight; this.count = count; } public static void main(String[] args) { Fruit banana = new Fruit(“banana”, “yellow”, 5.0, 10); System.out.println(“name: ” + banana.name); // name: banana System.out.println(“color: ” + banana.color); // color: yellow System.out.println(“weight: ” + banana.weight); // weight: 5.0 System.out.println(“count: ” + banana.count); // count: 10 } }

하나의 클래스에 여러개의 생성자가 오버로딩되어 있을 때

일부분을 제외하고는 서로 중복된 코드를 가지고 있는 경우가 많이 있다.

오버로딩 너무 많이 적재했다(Overloading)는 뜻

같은 이름의 메서드에 매개변수의 타입, 개수를 다르게 한 것

이런 순간에 내부에 정의된 다른 생성자를 호출하여 코드의 중복을 피하고 깔끔하게 소스를 작성할 수 있다.

같은 클래스에 오버로딩 된 다른 생성차를 호출할 때 this 키워드가 사용된다.

생성자를 호출할 때에는 원하는 생성자의 매개변수를 확인한 후 메소드를 호출하는 것 처럼

this(매개변수…) 의 형태로 이용하면 된다.

위에선 2개의 매개변수를 입력받은 생성자(name, color) 의 구현부분에서

4개의 매개변수를 생성자(name, color, weight, count) 를 호출하고 있다.

3. 객체 자신의 참조값을 전달하고 싶을 때

public class Fruit { public String name; public String color; public double weight; public int count; public Fruit(String name, String color, double weight, int count) { this.name = name; this.color = color; this.weight = weight; this.count = count; } public Fruit getFruitInstance() { return this; } }

어떤 메소드에서는 동작을 완료하고 리턴값으로

메소드의 매개변수로 객체, 자기 자신의 참조값을 전달하고 싶어하는 경우가 있다.

이럴 때 getFruitInstance() 처럼 this 키워드를 이용함으로써 구현이 가능하다.

더보기 https://library1008.tistory.com/4 Java의 정석 (도우출판, 남궁성 저)

Class선언, Method() 선언

/*

* 클래스(class) 정의

* – 객체 분석 결과물을 토대로 설계도에 해당하는 클래스를 정의

* – 클래스 내에는 객체의 속성을 저장할 멤버변수를 선언하고,

* 객체의 동작을 정의할 메서드를 정의한다.

* – 아직 실체를 갖는 객체(= 인스턴스)가 아니므로 변수에 값을 저장할 필요는 없다.

* (단, 필요에 따라 저장도 가능)

*

* < 기본 문법 >

* [접근제한자] class 클래스명 {

* // 멤버변수

* // 메서드

* }

*

*

* ex) 사람 클래스 정의

* – 속성 : 이름, 나이, 키

*/

public class 사람 {

// 객체의 속성을 저장하는 멤버변수 선언

String 이름;

int 나이;

double 키;

}

// 동물(Animal) 클래스 정의

// 속성 : 이름(name, 문자열), 나이(age, 정수)

public class Animal {

String name;

int age;

}

public class Ex {

public static void main( String [] args) {

/*

* 정의된 클래스에 대한 인스턴스(객체) 생성 = 구현 단계

* – 힙(Heap) 메모리 공간에 인스턴스를 생성하여, 생성된 인스턴스의 주소값을

* 참조형 변수에 저장하여, 참조변수를 통해 인스턴스에 접근하도록 함.

*

* < 인스턴스 생성 기본 문법 >

* 클래스명 참조변수명 = new 클래스명();

* => new 키워드를 통해 인스턴스가 Heap 공간에 생성되고

* 참조변수에 생성된 인스턴스 주소가 저장됨

*

* < 인스턴스의 멤버에 접근하는 기본 문법 >

* 참조변수명.멤버변수명 또는 참조변수명.메서드명() 형태로 접근

*/

// Animal 클래스의 인스턴스 생성

// Animal ani; // Animal 클래스 타입 참조변수 선언

// ani = new Animal(); // Animal 인스턴스 생성 후, 생성된 주소를 참조변수에 전달

// => 선언과 인스턴스 생성이 분리된 문장을 하나로 결합할 수 있다!

Animal ani = new Animal();

// 참조변수를 사용하여 생성된 인스턴스에 접근한 뒤 인스턴스 변수 값 변경

// => 참조변수명.인스턴스변수명 형태로 접근

ani.name = “멍멍이” ; // 인스턴스 내의 변수 name 값을 “멍멍이” 로 변경

ani.age = 3 ; // 인스턴스 내의 변수 age 값을 3 으로 변경

// 인스턴스 변수에 저장된 값 출력

System . out . println ( “이름 : ” + ani.name);

System . out . println ( “나이 : ” + ani.age);

// 멍멍이에 해당하는 인스턴스가 생성된 상태

System . out . println ( “———————” );

// 멍멍이는 그대로 두고 새로 야옹이에 해당하는 인스턴스 생성

Animal ani2 = new Animal();

ani2.name = “야옹이” ;

ani2.age = 2 ;

System . out . println ( “이름 : ” + ani2.name);

System . out . println ( “나이 : ” + ani2.age);

// Animal 타입 ani2 인스턴스가 생성되더라도

// 기존의 ani 인스턴스는 그대로 유지됨

System . out . println ( “이름 : ” + ani.name);

System . out . println ( “나이 : ” + ani.age);

System . out . println ( “==================================” );

// Student 클래스의 인스턴스 생성(참조변수명 : s)

Student s = new Student();

// id : 20201111 이름 : 홍길동 학과명 : 빅데이터

s.id = 20201111 ;

s.name = “홍길동” ;

s.className = “빅데이터” ;

System . out . println ( “ID : ” + s.id);

System . out . println ( “이름 : ” + s.name);

System . out . println ( “학과 : ” + s.className);

Student s2 = new Student();

s2.id = 20202222 ;

s2.name = “이순신” ;

s2.className = “전자정부” ;

System . out . println ( “ID : ” + s2.id);

System . out . println ( “이름 : ” + s2.name);

System . out . println ( “학과 : ” + s2.className);

}

}

// 하나의 java 파일에 여러개의 클래스를 정의할 수도 있다!

// 단, java 파일 이름과 동일한 클래스 앞에 public 이 붙지만

// 그 외의 클래스는 public 키워드를 제외하고 클래스 정의해야함

// 학생(Student) 클래스 정의

// 속성 : 학번(id, 정수형), 이름(name, 문자열), 학과명(className, 문자열)

class Student {

int id;

String name;

String className;

}

/*

* 메서드(Method)

* – 작업의 최소 단위(= 작업을 실행하는 코드들의 모음)

* – 반드시 호출되어야만 사용할 수 있음

* => 호출하는 메서드 : Caller, 호출 당하는 메서드 : Worker

* – 메서드 호출 시 전달하는 값을 파라미터(Parameter, 매개변수) 라고 하며,

* => 파라미터는 없을 수도 있고, 여러개 일 수도 있다.

* – 메서드가 호출되면 작업을 수행한 후에 반드시 호출한 위치로 돌아감

* => 메서드 작업 수행 후 돌아갈 때 가지고 가는 값을 리턴값이라고 함

* – main() 메서드는, 자바에서 유일하게 프로그램 실행 시 자동으로 호출되는 메서드

* => 프로그램 시작점이라고 함

*

* < 메서드 정의 기본 문법 >

* [제한자] 리턴타입 메서드명([파라미터…]) {

* // 메서드 호출 시 수행할 코드들…

* [return [리턴값];]

* }

*

* < 메서드 형태 4가지 >

* 1. 파라미터도 없고, 리턴값도 없는 메서드

* 2. 파라미터는 없고, 리턴값만 있는 메서드

* 3. 파라미터만 있고, 리턴값은 없는 메서드

* 4. 파라미터도 있고, 리턴값도 있는 메서드

*

*/

// Worker 메서드 호출

// => 호출할 메서드의 이름을 사용하여 메서드 호출하고, 파라미터가 있을 경우 값 전달

// 1. 파라미터도 없고, 리턴값도 없는 메서드 호출

System . out . println ( “동생아! 불 좀 끄고 가라!” );

sister_1(); // sister_1() 메서드 호출(sister_1() 메서드로 흐름이 이동함)

// => 파라미터가 없으므로 소괄호() 안에 아무 데이터도 전달하지 않음

System . out . println ( “동생이 불을 끄고 갔다!” );

// 주의! 리턴값이 없는 메서드를 출력문에서 호출하거나 변수에 대입 불가능

// System.out.println(sister_1()); // 오류 발생!

System . out . println ( “————————–” );

// 2. 파라미터는 없고, 리턴값만 있는 메서드 호출

System . out . println ( “동생아! 물 좀 떠다 도!” );

String result = sister_2(); // sister_2() 메서드 호출

// => 파라미터가 없으므로 소괄호() 안에 아무 데이터도 전달하지 않음

// => 리턴타입이 String 이므로 리턴받는 데이터를 변수에 저장하거나

// 또는 출력문 등에 사용할 수 있다!

System . out . println ( “동생이 가져다 준 것 : ” + result); // 리턴받은 값을 변수에 저장한 경우

// System.out.println(“동생이 가져다 준 것 : ” + sister_2()); // 리턴값을 바로 사용하는 경우

System . out . println ( “————————–” );

// 3. 파라미터만 있고, 리턴값은 없는 메서드 호출

System . out . println ( “동생아! 돈 줄 테니 과자 사먹어라!” );

// sister_3(200); // sister_3() 메서드 호출(파라미터에 리터럴 직접 전달)

// => 파라미터가 있으므로 소괄호() 안에 전달할 데이터 지정(변수 또는 리터럴 사용)

int money = 200 ;

sister_3(money); // sister_3() 메서드 호출(파라미터에 변수값 전달)

System . out . println ( “————————–” );

// 4. 파라미터도 있고, 리턴값도 있는 메서드 호출

// => 파라미터가 있으므로 소괄호() 안에 전달할 데이터 지정(변수 또는 리터럴 사용)

// => 리턴타입이 String 이므로 리턴받는 데이터를 변수에 저장

System . out . println ( “동생아! 200원으로 새우깡 좀 사온나!” );

String snack = sister_4( 200 ); // sister_4() 메서드 호출(파라미터에 변수값 전달)

System . out . println ( “동생이 사다준 것 : ” + snack);

} // main() 메서드 끝

// ——— 4. 파라미터도 있고, 리턴값도 있는 메서드 정의 ———

// => 파라미터가 있으므로, 메서드 선언부 소괄호() 안에 전달받는 데이터를 저장할 변수를 선언

// => 리턴값이 있으므로 리턴타입 부분에 리턴할 데이터의 타입을 명시(ex. 문자열 = String)

// => 반드시 메서드 종료 시점에서 리턴값을 return 문을 사용하여 명시해야함!

public static String sister_4( int sisterMoney) {

System . out . println ( “오빠가 새우깡 사오라고 ” + sisterMoney + “원을 줬다!” );

return “새우깡” ;

}

// 메서드 정의(= 호출당하는 메서드 = Worker 메서드)

// ——— 1. 파라미터도 없고, 리턴값도 없는 메서드 정의 ———

// => 파라미터가 없으므로 메서드 선언부의 소괄호() 안에 아무것도 명시하지 않음

// => 리턴값이 없으므로 리턴타입 부분에 void 를 명시(void = 리턴할 데이터가 없다는 특수 타입)

public static void sister_1() {

// sister_1() 메서드 호출 시 수행할 작업들을 기술

System . out . println ( “동생 : 오빠가 불 끄라고 해서 불을 껐다!” );

return ; // 리턴값이 없을 경우 return; 만 써도 되고, 생략해도 됨

// => 메서드 내에서 return 문을 만나면 현재 메서드 수행이 종료되고 호출한 곳으로 돌아감

} // => 메서드 수행 종료 후 호출한 곳으로 돌아감

// ——— 2. 파라미터는 없고, 리턴값만 있는 메서드 정의 ———

// => 파라미터가 없으므로 메서드 선언부의 소괄호() 안에 아무것도 명시하지 않음

// => 리턴값이 있으므로 리턴타입 부분에 리턴할 데이터의 타입을 명시(ex. 문자열 = String)

// => 반드시 메서드 종료 시점에서 리턴값을 return 문을 사용하여 명시해야함!

public static String sister_2() {

System . out . println ( “동생 : 오빠가 물 떠오라고 시켰다!” );

System . out . println ( “동생 : 물을 떠다 줬다!” );

// return 문을 사용하여 리턴타입 String 에 해당하는 데이터 리턴

// return “물”; // 리터럴을 직접 리턴하거나

// 변수를 사용하여 변수에 값을 저장한 뒤 리턴할 수 있음

String str = “물” ;

return str;

}

// ——— 3. 파라미터만 있고, 리턴값은 없는 메서드 정의 ———

// => 파라미터가 있으므로, 메서드 선언부 소괄호() 안에 전달받는 데이터를 저장할 변수를 선언

// => 리턴값이 없으므로 리턴타입 부분에 void 를 명시(void = 리턴할 데이터가 없다는 특수 타입)

public static void sister_3( int sisterMoney) { // int형 데이터 1개 전달받아 sisterMoney 에 저장

// => 전달받은 데이터가 저장된 파라미터를 사용하여 작업 수행 가능

System . out . println ( “동생 : 오빠가 과자 사먹으라고 준돈 ” + sisterMoney + “원” );

sisterMoney – = 200 ;

System . out . println ( “동생 : 과자 사먹고 남은돈 ” + sisterMoney + “원” );

// 리턴타입이 void 이므로 return 문을 생략하거나 return; 형태의 문장만 사용 가능

// return; // 메서드 내에서 return 문을 만나면 현재 메서드를 종료하고 돌아감(생략 가능)

}

} // 클래스 끝

public class Test {

public static void main( String [] args) {

// 1. 파라미터도 없고, 리턴값도 없는 메서드 호출

// => “Hello, World!” 문자열을 10번 반복 출력하는 메서드 hello() 호출

hello();

// => 구구단을 2단 ~ 9단까지 차례대로 출력하는 메서드 gugudan() 호출

gugudan();

System . out . println ( “———————–” );

// 2. 파라미터는 없고, 리턴값만 있는 메서드 호출

// => “아이티윌 부산교육센터” 문자열을 리턴하는 메서드 itwill() 호출

// => 리턴되는 문자열을 변수 result 에 저장한 후 출력

String result = itwill();

System . out . println (result);

System . out . println ( “————————” );

// 3. 파라미터만 있고, 리턴값은 없는 메서드 호출

// => hello2() 호출하여 반복할 횟수를 전달

hello2( 10 ); // “Hello, World!” 문자열이 5번 출력되도록 지정

System . out . println ( “————————” );

// 4. 파라미터도 있고, 리턴값도 있는 메서드 호출

// => abs() 메서드를 호출하여 절대값을 계산할 정수 전달 후 리턴값(absNum)을 출력

int absNum = abs( – 5 );

System . out . println ( “절대값 : ” + absNum);

} // main() 메서드 끝

// ——— 4. 파라미터도 있고, 리턴값도 있는 메서드 정의 ———

// => 정수(num) 1개를 전달받아 절대값을 리턴하는 메서드 abs() 정의

public static int abs( int num) {

if (num < 0 ) { num = - num; // 절대값 계산 } return num; } // --------- 1. 파라미터도 없고, 리턴값도 없는 메서드 정의 --------- // => “Hello, World!” 문자열을 10번 반복 출력하는 메서드 hello() 정의

public static void hello() {

// “Hello, World!” 문자열을 10번 반복 출력

for ( int i = 1 ; i < = 10 ; i + + ) { System . out . println ( "Hello, World!" ); } } // => 구구단을 2단 ~ 9단까지 차례대로 출력하는 메서드 gugudan() 정의

public static void gugudan() {

// 구구단 출력

for ( int dan = 2 ; dan < = 9 ; dan + + ) { System . out . println ( " < " + dan + "단 >” );

for ( int i = 1 ; i < = 9 ; i + + ) { System . out . println (dan + " * " + i + " = " + (dan * i)); } System . out . println (); } } // ---------- 2. 파라미터는 없고, 리턴값만 있는 메서드 정의 ----------- // => 문자열 “아이티윌 부산교육센터” 를 리턴하는 메서드 itwill() 정의

public static String itwill() {

// return “아이티윌 부산교육센터”;

String result = “아이티윌 부산교육센터” ;

return result;

}

// ——— 3. 파라미터만 있고, 리턴값은 없는 메서드 정의 ———

// => 정수값(num) 전달받아 “Hello, World!” 를 num 값 만큼 반복 출력하는 메서드 hello2() 정의

public static void hello2( int num) {

// “Hello, World!” 문자열을 num 번 반복 출력

for ( int i = 1 ; i < = num; i + + ) { System . out . println ( "Hello, World!" ); } }

[JAVA] 자바 클래스란, 클래스 객체 생성하는 방법

클래스란

클래스는 프로그램을 효율적으로 작성하도록 도와주는 개념입니다.

모든 자바 소스는 클래스를 포함하고 있고, 반드시 하나 이상의 클래스가 존재해야 합니다.

클래스는 클래스가 표현하는 사물의 일반적인 요소에서 출발하는 것이 좋습니다.

예를들면 자동차의 경우 차량번호와 연료량을 항상 가지고 있어야 합니다.

이렇게 자동차의 특성과 기능들을 정리하여 하나의 클래스로 묶어서 표현할 수 있습니다.

‘차량 번호는 ㅇㅇㅇ입니다.’

‘남은 연료량은 ㅇㅇ입니다.’

1 2 3 4 5 6 7 8 9 class 자동차 { 차량번호; 남은연료량; 차량번호결정하기; 연료를 넣기; 차량번호와 남은연료 양을 표시하기 } cs

클래스 선언하기

물건의 상태 특성, 기능을 정리한 클래스를 작성하는 작업을 ‘클래스 선언’ 이라고 합니다.

class 클래스 명 { 형(type)명 필드(field) 명; … 리턴 값의 형(type) 메소드(method) 명(인수 목록) { 문장; return 식; } }

명칭 설명 클래스 명 사용자가 기능/특성을 표현하는 명칭을 지정 형 필드의 타입을 설정 (int, char 등) 필드 클래스의 ‘상태 및 특성’을 표현하기 위한 수단 (=변수) 메소드 클래스의 ‘기능’을 표현하기 위한 수단 인수 메소드 내에서 사용할 변수

객체 생성

클래스를 선언했으면 클래스를 사용할 수 있도록 객체를 생성해야 합니다.

예를들어 ‘자동차’ 클래스를 선언했을 때, 하나의 객체(object)는 하나의 ‘자동차 1대의 속성’을 의미합니다.

객체를 생성하는 방법

1. 객체를 담을 변수를 선언 ( 타입은 클래스 명이 됩니다. )

2. 객체를 만들고, 그 변수에 접근

클래스명 변수명; 변수명 = new 클래스명();

클래스와 객체생성 후 클래스변수 사용 예제

메인 클래스와 자동차특성을 위한 클래스를 생성 후

메인 클래스에서 자동차 클래스 객체를 생성 및 클래스 변수를 조회하는 코드입니다.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class CarTest { public static void main( String [] args) { // TODO Auto-generated method stub Car carObject; // Car 클래스타입과 carObject 변수 생성 carObject = new Car(); // carObject 변수에 Car 객체를 대입 System . out . println ( carObject.fuel ); // Car 객체의 변수값을 조회 System . out . println ( carObject.carnumber ); } } class Car { // Car 클래스 선언 int fuel = 100 ; String carnumber = “12ac 5311” ; } Colored by Color Scripter cs

자바 클래스 선언방법

자바 클래스객체 생성방법

자바 클래스변수 사용방법

키워드에 대한 정보 자바 클래스 선언

다음은 Bing에서 자바 클래스 선언 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 [자바 입문] 클래스 선언

  • tryhelloworld
  • 자바 입문►클래스와 객체►클래스 선언
[자바 #입문] #클래스 #선언


YouTube에서 자바 클래스 선언 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 [자바 입문] 클래스 선언 | 자바 클래스 선언, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  다시마 식초 효능 | 지방 쏘옥 빼주는 '다시마 식초 에이드' Mbn 210704 방송 빠른 답변

Leave a Reply

Your email address will not be published. Required fields are marked *