java/클래스와 메서드
클래스
june__Park
2021. 3. 23. 10:57
package week4;
/*
* 클래스
-- 여러개의 자료 타입을 저장하기 위해서 만든
사용자 정의 자료 타입이다
메서드 -- 함수
하나의 기능구현하는 코드블록을
여러번 재사용 할 수있게 만든것 --> 메서드
코드의 간결성 , 생산적 --> 가독성 좋아진다
메서드 : 무조건 클래스를 인스턴스화 : 객체로
만들어서 접근이 가능하다 : --> new 클래스이름(); --> 클래스 인스턴스화 : 클래스 객체 (heap)
그 힙에서 만든 메모리의 주소를 호출 한곳 , main 안에 사용하는 이름으로 주소 변수만든다
Random rand = new Random();
----------- ------------
메인(stack)에서 heap 만들어지고
rand 주소를
객체로 heap rand 줌
주소 가진
값 한개
heap ==> new 모든것들이 들어가고
int arr[] = {10,20,30,40,50} // new int[5] , arr[0] =10...
지역변수 -> 메서드영역 안 / 갈색 / stack 있는 메서드 영역에서 메모리공간 차지
-> 메서드가 끝나면 stack 메모리가 사리질때 같이 사라지는 애
-> 초기값을 가져야만 변수 생성이 가능
전역변수 -> 클래스영역 안, 메서드 영역 밖 : 파란색 / new 할때 heap 메모리 안에 생성이 된다
-> 클래스 객체 변수(주소값) .(점) 접근이 가능하다
-> 초기값이 없으면 자동으로 초기값을 생성 ,, 숫자 -> 0 숫자가 아니면 -> null
*/
//클래스를 만들려면 class 클래스 키워드 + 클래스이름(대문자로 시작 ) {} // {}는 클래스 영역
class MyClass {
int dnum;
double fnum;
char a;
String name;
}
public class Class1 {
public static void main(String[] args) {
// 변수 --> 값을 한개 저장하는 애
// 기본형 변수 - 실질적으로 값이 들어가 있음
// int double float short byte char boolean long
// 나머지는 모두 참조형 변수 -- > 주소값 1개를 저장하는 애다
int num = 10;
// 배열은 변수는 한개 저장 못하니깐 여러개 저장하기 위해서 등장
int numarr[] = new int[10];
numarr[0] = 10;
numarr[1] = 20;
// numarr[2]="30";
// 배열의 한계는 같은 자료형 타입만 저장할 수 있다
// 한번 배열의 크기를 저장하면 그 크기를 변경할 수 없다
// 배열의 크기를 자동으로 변경하게 만들어주는 애 ---> Vector , Arraylist
// 나는 여러개의 자료형을 배열로 넣고싶어 --> 클래스가 등장 -> 사용자 지정 자료형 타입
// int String double char
// 변수를 만든다 (변수 생성 )
// 자료형타입 + 변수사용할 이름 = 변수에 넣을 값
MyClass mc = new MyClass();
// 사용자 클래스 이름 사용할 변수이름 = new 사용할 클래스이름();
mc.dnum = 10;
mc.fnum = 3.14;
mc.a = 't';
mc.name = "홍길동";
}
/*
public static void main(String[] args) {
MyClass mc2 = new MyClass();
// 클래스는 같은 패키지 안에 다른 클래스 사용이 가능하다
System.out.println(mc2.a);
System.out.println(mc2.dnum);
System.out.println(mc2.fnum);
System.out.println(mc2.name);
Scanner sc = new Scanner(System.in);
}
*/
}
package week4;
class Ex04{
//색깔이 파란색이다
int x;
int y;
}
public class Class2 {
public static void main(String[] args) {
//객체지향 vs 절차지향
// 자바 c언어 : 코드에서 무조건 위에서부터 아래로 순서대로 작동한다
//꼭 위에서 부터 시작하는것이 아니라
//객체를 만들어서 사용한다 --> 인스턴스화 new : 객체를 만든다
// 지역변수 -- 메스드영역안 그래서 stack 안에서 만들어지고 , 반드시 초기값을 가져야한다
// 전역변수 : 멤버변수 ==> class 곧 멤버 --> 클래스영역 안 메스드 영역밖
// 인스턴스(객체) 변수 --> 객체를 만들때 같이 만들어지는 애 --> 자동 초기값을 가진다 : 파란색
// 숫자 --> 0
//숫자 아니면 --> null로 자동 초기값을 가진다
//클래스변수 (static) 파란색 + 이탈릭체 -> 기울러진 글꼴
//지역변수는 색갈이 갈색이다
int x = 0;
int y = 0;
}
}