클래스

LeeSeungHwan dev·2020년 12월 19일
0

목표
자바의 Class에 대해 학습하세요.

학습할 것 (필수)
클래스 정의하는 방법
객체 만드는 방법 (new 키워드 이해하기)
메소드 정의하는 방법
생성자 정의하는 방법
this 키워드 이해하기

-클래스 정의하는 방법
클래스를 정의하기전에 먼저 클래스에 대해 알아보자.
클래스란 '객체를 정의해놓은것.'또는 '객체의 설계도 또는 틀'이라고 정의 할수 있다.
클래스는 객체를 생성하는데 사용되며 객체는 클래스의 정의된대로 생성된다.
클래스 작성 규칙
-하나 이상의문자로 이루어져야한다.
-첫번째 글자에는 숫자가 올수가 없다.
-$,_외에는 특수문자가 사용불가하다.
-자바 명령어,키워드는 사용할수 없다.
-이름은 대소문자를 구분한다.
클래스 정의하는 방법
publc class Tv{
String color;
boolean power;
int channel;
public void TvTest{
Tv t;
t= new Tv();
t.channel=7;
t.channelDown();
system.out.println("현재 채널은"+t.chnnel+"입니다.")
;}

-객체 만드는 방법
객체란 '실제로 존재하는것이다.'
객체의 정의 :실제로 존재하는것,개념
객체의 용도 :객체가 가지고 있는 기능과 속성에 따라 다름
-객체의 생성
클래스로 부터 객체를 만드는 과정을 클래스의 인스턴스화라고 하며 ,어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다.
객체를 생성하기 위해서는 new연산자를 사용한다.new키워드는 클래스로부터 객체를 생성시키는 연산자이다.
class Tv;
Tv tv= new Tv();
-메소드 정의하는 방법
자바에서는 클래스는 멤버로 속성을 표현하는 필드와 기능을 표현하는 메소드를 가지는데
그중에서 메소드란 어떠한 특정 작업을 수행하기 위한 명령문의 집합이라 할수있다.
메소드 정의하기
-메소드 구조
public 리턴자료형 메소드명(입력자료형1 입력변수1, 입력자료형2 입력변수2, ...) {
...
return 리턴값;
}
public class Sample{
public static void sum(){
int sum=0;
for(int i=0; i<20; i++){
sum+=1;
}
System.out.println(sum);
}
}
*위에 형식 같은 경우에는 리턴 지료형이 void라서 return 문이 필요없다.

-생성자 정의하는 방법
모든클래스는 인스턴스화 될때 생성자를 사용한다.
생성자의 특징
-생성자는 리턴타입이없다.
-생성자를 프로그래머가 만들지 않으면 매개변수가 없는 생성자가 컴파일할때 자동으로 만들어진다.
-매개변수가 없는 생성자를 기본 생성자라고 한다.
-생성자를 하나라도 프로그래머가 만들었다면 기본생성자는 자동으로 만들어 지지 않는다.
생성자의 역할
1.생성자가 하는일은 객체가 될때 필드를 초기화 하는 역할을 수행한다.
*생성자의 기본구조
public 클래스명(초기화 할 변수){
인스턴스 변수 초기화 명령문들
}

생성자 생성하는방법

public class Tv{
String name;
int channel;
public Tv(String n){
name =n;
}
}

public class Tv2{
public static void main(String args[]){

Tv tv1= new Tv("올레드");
TV tv2= new TV("LED");
System.out.println(tv1.name);
System.out.println(tv1.name);
}
}

-this 키워드 이해하기
this는 현재객체, 자기 자신을 나타낸다.
public class Tv{
String name;
int channel;
public Tv(String n){
name =n;
}
}
여기서 TV클래스의 생성자 매개변수의 이름은 n인데 이 n이란 변수명은 무엇을 의미하는지 쉽게 알수가 없기때문에 n을 name로 바꿔 사용한다.
public Tv(String name){
name =name;
}
'name=name'라고 코드를 바꾸면 가깝게 선언된 변수를 우선 사용하기 때문에 'name=name'이라는 코드는 매개변수의 name 값을 매개변수 name의 값을 매개변수 name에 대입하라는 의미가 된다.
public Tv(String name){
this.name =name;
}
필드는 바뀌지 않으며, 필드는 컴파일러와 jvm에게 알려주기위해 this를 사용해야한다.
앞에this.name은 필드 name을 말하며 뒤에 name은 매개 변수를 의미한다.

출처
자바의 정석
프로그래머스

profile
생각하는 개발자가 되자!

0개의 댓글

관련 채용 정보