1. 클래스
1) 대문자로 시작
1-2) 숫자, $,_로 시작하면 안됨
1-3) 자바 키워드 사용 금지(if, for 등)
2) 키워드는 소문자로 한다.
3) 소스파일명과 동일한 경우 public을 붙일 수 있다!
public class one{
//1. 필드
private string name;
private int age;
private string type;
//2. 생성자
public one(){} //기본 생성자
//3. 메소드(동작을 수행하는 함수)
void speak(String lang){}
void move(){}
double ageSum(int age){
int result=0;
for(int i=0;i<=10;i++)
{
result += i;
}
return result;
}
}
public class One{
public static void main(String[] args) { //여기까지는 main인 경우를 나타냄
One oneperson = new One(); //생성자 호출
oneperson.name = "아담";
oneperson.age = 11;
oneperson.type = "남";
oneperson.speak("안녕");
oneperson.move();
}
}
4) 구성 요소
1. 필드: 객체의 고유 속성을 저장하는 곳 , 생성자와 메서드 전체에 사용됨
>> 변수와 다른 점: 변수(생성자에 메서드 내에서만 실행) 이 부분이 다름(소멸되지 않는 한, 메모리에 존재!)
※ 오버로딩, 오버라이딩 특성
오버로딩: 하나의 이름으로 여러 기능을 수행하는 것
오버라이딩: 재정의를 하는 것을 나타냄(부모로부터 받은 메소드를 자식 클래스에서 재정의!!) - 상속관계에서 사용!
2. 생성자: 초기화를 담당, 반드시 존재!(한 개 이상은 존재 X)
※ 클래스가 public이 붙었다면, 기본 생성자도 당연히 되는건데, 안붙었다면 public 처리가 안 됨
리턴값이 없다.
* 생성자 오버로딩
public class Music{
//필드
String kind;
String name;
int titleNo;
Music(){} //기본 생성자
Music(String kind, String name){
this.kind=kind;
this.name=name;
}
Music(String kind, String name, int titleNo){
this.kind=kind;
this.name=name;
this.titleNo=titleNo;
}
}
3. 메소드: 객체 동작을 수행하는 곳(행위, 동작) - 결과를 리턴한다.
예) system.out.println(); 에서 괄호 안에 모든 값을 넣으면 출력되듯이,
system.out.println(String "aa");
system.out.println(int 2);
system.out.println(String "bb", int 3);
위와 같이, 동일한 메소드 이름으로 다양한 형태로 기능을 수행할 수 있다.
조건
1) 메소드 이름이 같아야 함
2) 매개변수의 차이가 있어야 함(개수나 타입이 달라야 함)
3) 모든 접근 제어자 사용
4) 같은 클래스 내에서 사용!
(밑에는 메소드 오버로딩을 나타냄)
메소드를 이용할 때, 매개변수마다 달라지는 값이 있는데, 만약 배열 변수 값을 넣어준다 하면,
public class Computer(){
public Computer(){}; //기본 생성자
int sum(){
return 1+2+3+4+5+6+7;
}
int sum(int[] a){
int result=0;
for(int i=0;i<=a.length;a++)
{
result += a[i];
}
return result;
}
}
public class Computerr{
public static void main(String[] args){
Computer com = new Computer();
int Sum = com.sum(new int[] {1,2,3,4,5});
system.out.println(Sum);
}
}
위와 같은 방법으로, 메소드는 오버로딩이 가능하고 효율적이 코드가 됨
방식:
1) 객체 지향언어이기 때문에, 부모와 자식 관계가 성립.
2) 클래스 별로 메인이 되는 동작을 수행(전체 클래스[메인 함수])
-> 이 안에서 동작이 수행되기 위해서 사용한 것(동작 클래스<여기서는, Computer class>)
JSONProperty (0) | 2023.01.25 |
---|---|
Map데이터 가져오기 (0) | 2022.01.27 |
Heap, Stack, Method (0) | 2021.12.08 |
자바 개념 (0) | 2021.08.23 |
자바 (0) | 2021.08.18 |