목록Programming Language/Java (41)
Slow but steady wins the race
보호되어 있는 글입니다.
static 메서드와 인스턴스 메서드 메서드 앞에 static이 붙으면 static 메서드라 함 (클래스 메서드라고도 함) static이 안 붙으면 인스턴스 메서드라 함 두 메서드를 구별하는 기능적인 차이는 인스턴스 멤버의 사용 여부이다. 인스턴스 메서드 인스턴스 생성 후 '참조변수.메서드 이름()'으로 호출함 인스턴스 변수(iv), 인스턴스 멤버(im)와 관련된 작업을 함 메서드 내에서 iv 사용 가능 static 메서드 객체 생성 X '클래스 이름.메서드 이름()'으로 호출함 인스턴스 변수(iv), 인스턴스 멤버(im)와 관련되지 않은 작업을 함 메서드 내에서 iv 사용 불가능 예시1 class mymath{ long a,b; //인스턴스 변수 long add(){//인스턴스 메서드 return a+..
메서드의 매개변수 메서드의 매개변수 타입은 기본형, 참조형으로 나눌 수 있음 기본형 매개변수 변수의 값을 읽기만 하고 변경은 불가능함 class Data{ int x; } class example{ public static void main(String[] args){ Data d = new Data();//객체 생성 d.x = 10; System.out.println(" main() : x = "+ d.x); change(d.x); System.out.println(" main() : x = "+ d.x); } static void change(int x){//기본형 매개변수 x = 1000; System.out.println("change() x : "+x); } "main() : x = "에 대한 ..
stack이란? 밑이 막히고 위가 뚫린 상자라고 생각하면 된다. 위에 차곡 차곡 쌓인다. 따라서 꺼낼때는 제일 위에있는 것부터 차례로 꺼낸다. ★ 중간에 끼워 넣거나 아래 있는 것을 빼낼 수 없다 call stack이란? 메서드 수행에 필요한 메모리가 제공된 공간으로, 메서드가 호출되면 호출 스택에 메모리를 할당하고 종료 시 해제 한다. 예시로 설명하자면.. 1. 호출 스택에 main( )이 있음 2. main()이 println()을 호출 3. 호출 스택에 아래서부터 차례로 main( ) , println( )이 쌓여 있음 이때, main( )은 대기상태, println( )은 실행상태 4. println( )이 종료 5. 호출스택에 main( )만 남음 따라서.. → 아래에 있는 메서드가 위에 있는 ..
메서드란? 메서드란? 코드의 중복을 제거하기 위해서 { 해당 문자들 }을 묶은 것으로, 값을 입력받아 결과를 출력(반환)한다. ※ 메서드 vs 함수 더보기 메서드는 클래스 안에 들어있어야 하는 것 함수는 클래스에 독립적임 메서드의 장점? - 중복 코드 제거 - 관리 용이 - 재사용 가능 참고로, 하나의 메서드는 하나의 기능만 수행하도록 작성해야 함 메서드 = 선언부 + 구현부 반환타입 메서드이름 (타입 변수명, 타입변수명, ...) // 선언부 {// 구현부 //코드 // 구현부 }// 구현부 int add(int x,int y){ int res = x+y; return res; } 메서드 호출 메서드 이름(값1, 값2, ...); 위의 형식과 같이 메서드를 호출하는데, return type에 따라 작업..
선언 위치에 따른 변수의 종류 선언 위치에 따라 종류가 3가지로 나뉜다. (1) iv 인스턴스 변수 (2) cv 클래스 변수(static, 공유 변수) (3) lv(지역 변수) 코드로 구분해 보면 다음과 같다. class Variables{ int iv;//인스턴스 변수 static int cv;//클래스 변수 void method(){ int lv =0; //지역 변수 } } (1) iv(instance variable) 인스턴스가 생성되었을 때 생성 Time class가 있다고 가정할 때, "int hour; int min; int sec;" 이것들을 iv라 할 수 있음! 언제 생성됨? 객체를 생성할 때, 만들어짐 객체는 iv를 묶어놓은것! 이라고 이해하면 쉽다. (엄밀히 얘기하면 틀린 말이지만, 일..
클래스의 정의 클래스의 정의는 크게 3가지로 나눌 수 있다. (1) 설계도 (2) 데이터 +함수 (3) 사용자 정의 타입 (1) 설계도 말그대로 설계도.. "https://bskwak.tistory.com/219" 참고 )2) 클래스 == 데이터 + 함수 ※ 배열 vs 구조체 더보기 배열은 같은 type만 묶을 수 있고 구조체는 다른 type도 묶을 수 있음 구조체에서 좀 더 발전(?)된 형태가 클래스라 할 수 있음 클래스 == 구조체(다양한 type 변수) + 함수(메서드) (3) 사용자 정의 타입 원하는 타입을 새로 만듦 - 예를 들면 시간 같은거? /*1*/ int hour; int min; int sec; /*2*/ int hour1, hour2, hour3; int min1, min2, min3..
객체의 생성과 사용 1. 클래스 작성 설계도 작성이라 생각하면 쉽다. class Tv{ //3개의 변수 String color; boolean power; int channel; //3개의 매서드 void power(){ power = !power; } void channelUp(){ channel++; } void channelDown(){ channel--; } } 위의 클래스는 변수 3개, 매서드 3개로, 총 6개의 멤버를 가지고 있다. 2. 객체의 생성 클래스명 변수명; : 클래스의 객체를 참조하기 위한 참조 변수 선언 변수명 = new 클래스명(); : 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장 Tv t; //Tv 클래스 타입의 참조변수 t 선언 t = new Tv(); //Tv ..