ctrl + d 한줄 삭제
alt + 방향키 한줄 선택 돼서 왔다갔다 가능
ctrl + shift + f 코드 정렬
ctrl + alt + 방향키 위아래 그 줄 복사 붙여넣기
f11 코드 실행
int age= Integer.parseInt(line); 문장을 정수로 변환
변수.replace ( b ,a ) b를a로 바꾼다.
클래스를 하나 더 만들어보자
클래스는 일반적으로 클래스 안에 만들지는 못한다.
아래에 만든 클래스 철수는 설계도 같은 것인다.
이 설계도를 가지고 철수 a = new 철수 () 같은 새로운 객체를 만들어 줄수 있는 것이다.
만든 클래스 안에서 여러가지 타입으로 주제들을 만들어줄수 있다.
아래의 코드 처럼 클래스 철수 안에서 이름, 나이, 키, 결혼 여부에 대한 주제들을 적어놨다.
그래서 새로 만들 new 철수 () 객체에 이름은 김철수 이고 나이는 32 이고 키는 170.3 이고 결혼 여부는 true
인 정보들을 적을수 있게된다.
이렇게 만든 객체를 창조 객체라고 한다.
보통 일반적으로 배열 객체는 원래 자바안에 있는거지만 필요에 의해서 이렇게 창조 객체를 만들수 있다.
class Main {
public static void main(String[] args) {
// 철수, 영희, 영수
int[] ages = new int[3];
ages[0] = 10;
ages[1] = 20;
ages[2] = 30;
System.out.println(ages[0] + ages[1] + ages[2]);
철수 a = new 철수();
a.이름 = "김철수";
a.나이 = 32;
a.키 = 170.3;
a.결혼여부 = true;
intArr3 ages2 = new intArr3();
ages2.key0 = 10;
ages2.key1 = 20;
ages2.key2 = 30;
System.out.println(ages2.key0 + ages2.key1 + ages2.key2);
intArr3 ages3 = new intArr3();
ages3.key0 = 20;
System.out.println(ages2.key0);
}
}
class 철수 {
String 이름;
int 나이;
double 키;
boolean 결혼여부;
} // 클래스 안에 클래스는 일반적으로 못쓰기 때문에 여기 쓴다.
// 철수 라는 설계도 이다. 그래서 위에 new 철수 라는 객체를 만들어줄수 있는것이다.
//
class intArr3 {
int key0;
int key1;
int key2;
}
리모콘의 이름은 this
그리고 또한 설계도 안에 함수(메서드)도 만들어줄수 있다. 이름, 나이 , 같은 건 명사 형태 였다면
이런 함수들은 동사 형태라고 생각해보자. 그래서 이 함수를 바로 대입하면 값이 나오게 하는
아래 코드애서 introduce() 함수를 통해서 이름 나이 등등을 나올수 있게했다.
class Main {
public static void main(String[] args) {
int[] b= new int[3]; //배열 객체
Person a =new Person(); //창조 객체, 사용자 정의 객체
a.age=20;
a.isMarried = false;
a.name = "철수";
a.introduce();
a.age=21 ;
a.introduce();
a.run( );
}
}
class Person {
int age;
boolean isMarried;
String name;
void introduce() {
int age = this.age; // person 클래스에 있는 int age 의 값을
//this 라는 리모컨을 이용해서쓰겠다.
System.out.println("자기 소개");
System.out.printf("이름 : %s\n","철수");
System.out.printf("나이 : %d\n",age);//그냥 this.age 바로써도됨
System.out.printf("결혼 여부 : %b\n",this.isMarried);
} //동사를저장 함수 형태 메서드
// 리모콘의 이름은 this
void run( ) {
System.out.println("철수가 달린다.");
}
}
창조 객체 만들어서 써보기
class Main {
public static void main(String[] args) {
Chicken ch = new Chicken();
ch.가격 = 10000;
ch.이름 = "네네치킨";
ch.맛 = "후라이드";
ch.introduce();
// Chicken ch2 = new Chicken();
// ch2.introduce();
}
}
class Chicken {
int 가격;
String 이름;
String 맛;
void introduce() {
System.out.printf("%s의 가격은 %d원이며, 맛은 %s 입니다.",이름, 가격,맛);
}
}
구구단 함수
class Main {
public static void main(String[] args) {
System.out.println("== main ==");
int[] arr = new int[3]; //
int a = 5;
funA(2); //인자
}
static void funA(int dan) {
System.out.println("== funA ==");
for(int i = 1; i<=9; i++) {
System.out.printf("%d * %d = %d\n", dan, i, dan * i);
}
}
}
함수에 값 넣어주기, 배열 객체 리모콘 넣어주기
이제 메인 클래스에서 함수에 인자를 넣고
아래 함수에서 그 인자를 받아서 결과를 도출해 내는 것이 아래에 코드 이다.
주의할 점은 함수에 값을 넣고 함수안에서 그 값을 변하게 해도 원래의 값을 변하지 않는다.
예를 들어 아래 코드 처럼 funA(a) 를 넣었고 void funA (a) { a=20} 을해도 메인크래스에서 a를 출력해도
a 는 그대로 5일 것이다. 사실 함수에게 a를 준것이 아니라 a의 값인 5를 준것이기 때문에 a는 변하지
않는 것이다.
대신에 이제 배열 객체의 리모컨을 가지고 있는 변수 arr 을 넣어주면
리모콘을 복사 받았기 떄문에 그 배열 객체의 수정권을 가지게 된다. 그래서 이제 그함수에서는
배열이 수정가능하다.
class Main {
public static void main(String[] args) {
System.out.println("== main ==");
int[] arr = new int[3]; //
int a = 5;
arr[0]=10;
funA(a); // a는 인자
System.out.println("a :" + a);
funB(arr); //funB 에게 arr 이 갖고 있는 리모컨을 준거
System.out.println(arr[0]);//그래서 10이였던 arr[0]값이 50으로 바뀜
}
static void funA(int dan) {
System.out.println("== funA ==");
for(int i = 1; i<=9; i++) {
System.out.printf("%d * %d = %d\n", dan, i, dan * i);
} // 여기서 dan 은 매개 변수
}
static void funB(int[] arr) {
System.out.println("== funB ==");
arr[0]=50; //위에서 받은 리모콘으로 new int[3]에 접근가능
}
}
매개변수는 파라미터라고도 함
'자바' 카테고리의 다른 글
| 2023-06-18 배열의 복사 (0) | 2023.06.18 |
|---|---|
| 2023-06-16 return , 상속 (2) | 2023.06.16 |
| 2023-06-14 while , 배열 (0) | 2023.06.14 |
| 2023-06-11 자바 switch (0) | 2023.06.11 |
| 2023-06-04 (0) | 2023.06.04 |