✅Java 기초 2일차

이상민·2023년 7월 11일
0

Java 기초문법

목록 보기
3/7

📗제어문

반복문 제어

break

  • break를 만나면 이하 문장 실행하지 않고, 해당 반복문을 빠져나온다.

continue

  • continue를 만나면 이하 문장 실행하지 않고, 해당 반복문의 다음단계를 진행한다.

난수발생

  1. Math클래스의 random()함수 사용(0.0 ~ 0.9999)
double num = Math.random();
  1. import java.util.Random; Random 클래스 사용
Random num = new Random();
int i = num.nextInt(10); // 0~9

📗Method

  • 객체안에 선언되어 객체가 가지고 있는 기능
  • 호출을 통해 사용하며 호출순서대로 실행한다.
  • 메서드 마지막 구현부에서 호출한 주체에 return할 수 있다.
  • 재사용 목적(코드 중복피할 수 있다)

Method 작성법

modifiers(접근 제한자)

  1. public - 어디서나 아무나 접근 가능
  2. protected - 상속관계라 접근 가능
  3. 생략 - 같은 폴더(package)라면 아무나 접근 가능
  4. private - 외부에서 접근 불가

접근 범위
public<protected<생략<private.

static
final
abstract
의 접근제한자를 추가로 붙여서 사용가능하다(추후에 설명)

return Type

1.void - 리턴값 없음
2.primitive Type(int,char등등) - 같은 타입의 리턴값 있음
3.object Type(기본형을 제외한 나머지) - 같은 타입의 리턴값 있음

method이름()

첫글자는 소문자로, 카멜표기법 권장
괄호 안에는 인수, parameter가 들어오고 (DataType 변수이름)형태로 지정한다.

method 호출방법

  1. 일반적인 방법
    호출하려는 메서드를 감싸고 있는 class형태 객체를 생성한다.
    Test t = new Test();
    생성된 객체변수를 이용하여 method를 호출한다.
    t.aa()

  2. static이 붙은 메서드 호출
    객체 생성없이 클래스 이름.method()
    Test.aa()

  3. 같은 클래스 내부에서 method 호출
    this.aa()

객체생성방법

Test t = new Test();

형태로 객체를 생성해서 사용한다.
객체가 생성되면 heap영역에 저장이 되고,해당 클래스 사용하지 않으면 가비지 컬렉션을 통해서 삭제된다.

t에는 주소값형태로 stack에 저장된다.
method 호출시에는 t.aa, t.bb의 형태로 사용
스택에 저장되므로 나중에 호출된 method가 끝나야 전에 호출된 method가 끝날 수 있다.
처음 호출은 main 메서드이며 제일 마지막에 끝나는 메서드도 main 메서드이다.

호출된 메서드를 보고 예상되는 클래스와 메서드 구현하기

double num = Math.random();

Random r = new Random();
int i = r.nextInt(10);

int no = Integer.parseInt("10");
String s = Integer.toString(10);

👉 예상되는 클래스와 메서드 형태

class Random {
    public int nextInt(int n){

        int random = 0;
        //로직
        return random;
    }
}
class Math {
    public static double random(){
        double n = 0.0;
        //로직

        return n;
    }
}

class Integer {
    public static int parseInt(String n){
        int k =0;
        //로직
        return k;
    }
    public static String toString(int n ){
        String k = "";
        //로직
        return k;
    }
}

📗 자바문서의 유형

  • 여러 개의 class작성 가능
  • public class는 한개만 작성 가능
  • public class가 있을 경우 반드시 public class이름으로 파일명 지정
  • main 메서드는 시작하는 class안에 작성하고 main 메서드가 있는 class이름으로 파일명 지정해야 실행가능하다.
  • class앞에 접근제한자 public, 생략 두가지 중 한가지만 사용가능(단, class안에 class가 들어가는 inner class에는 private 사용가능)

📗 Static

  1. class
    class 앞에는 올수 없다.(단, inner class에는 사용가능)

  2. variable
    전역 변수 앞에만 사용가능,
    객체생성 없이 외부에서 class이름.변수이름 호출가능
    static변수는 class들이 공유하는 공유변수이다.

  3. Method
    객체생성 없이 호출가능
    static method는 non-static method 호출 안됨!, static method만 호출 가능
    static method안에서 this 사용불가
    non-static 전역변수도 사용불가

static{
	System.out.println("메인보다 먼저실행");
    }
  • 초기화 블럭을 통해 메인보다 먼저 실행해서 초기 설정이 가능하게 할 수 있다.

static은 미리 메모리에 할당되어 있다. 추후에 객체를 생성해야만 하는건 사용할 수 없다. this도 해당 객체를 가리키는데 이 또한 객체를 생성해야하니까 사용할 수 없다.

📗 OverLoading

하나의 class내부에 method이름이 같은 method 여러개 있는것
인수의 순서 or type or 갯수를 통해 구분한다.

variable args

public void aa(int...i){//인수를 0개 이상 허용한다.

}

인수 갯수별로 메서드를 만들어야하는 불편함을 줄여준다.
ex) System.out.printf("이름: %s \t 국어: %d \t,name,kor);
여러개의 인수를 받을 수 있다.

Tip 1

System.out.print("\n안녕하세요");

println은 출력 후 개행이라면 " "안에 \n 사용시 개행지점을 지정할 수 있다.

Tip 2
main메서드는 static으로 선언한다.
자바가상머신에서 객체생성 없이 메모리에 할당시켜서 호출가능한 형태로 만들기 위함이다. main클래스가 JVM 상에서 실행되는 것이다.

Tip3
지역변수는 선언시 반드시 초기화 해야한다.
전역변수는 선언시 자동으로 초기화 된다.

profile
개린이

0개의 댓글