728x90
반응형
728x90
반응형
Collections Collection 클래스를 위한 static 메서드를 제공한다. Math클래스와 동일한 방식으로 사용할 수 있다. Math.random, Math.abs 등 1. fill, copy, binearysearch, sort등 Arrays메서드와 동일한 메서드 보유 2. 동기화 전용 메서드를 보유 - synchronized Vector는 동기화가 되어있지만 ArrayList는 동기화를 안하게 되어있다. 필요할 때만 동기화된 클래스를 사용 기능적으로 효율적인 코드 아래의 형식처럼 Collections.synchronized로 동기화를 ArrayList에 적용하면 Vector클래스를 사용하는 것과 동일하다. List list = new ArrayList(); Collections.synch..
메서드에 예외 선언하기 예외를 처리하는 방법은 3가지가 있는데 본인이 (1)직접 해결(try - catch)하거나 (2)예외를 선언하여(예외 떠넘기기) 다른쪽에 넘기거나, 혹은 (3)은폐(catch문에 공백으로 남기기)하는 법이 있다. 메서드에 예외를 선언한다는 것은 아래와 같이 메서드에 throws를 붙여 발생할 수 있는 에러의 종류를 나열하는 것이다 아래 메서드 method에는 arithmeticexceptoin이나 (or) index초과 오류가 날 수도 있다는 것을 정의 따라서 메서드안에서 아래의 에러를 처리할 수 있는 try - catch를 선언하던지 혹은 호출한 쪽으로 에러를 떠넘기던지 둘 중에 하나의 액션을 취해야 한다. 주의할 점은 main안의 throw가 아닌 throws로 s를 붙여서 선..
TV 리모컨 메서드 작성 예시 channelup, channeldown, volumeup, volumedonw 메서드를 작성하여 main 함수안에 print문으로 출력함 final 상수 값을 지정하여 최대 채널값, 최소 볼륨값을 넘어가면 변동이 안되도록 조건문 삽입 public static void main(String[] args) { MyTV tv = new MyTV(); tv.channel = 100; tv.volume = 0; System.out.println("CH: " + tv.channel + " VOL: " + tv.volume); tv.channelup(); tv.volumedown(); System.out.println("CH: " + tv.channel + " VOL: " + tv.v..
숫자 섞기 메서드 생성 int 배열을 매개변수로 줄 때 그 배열의 숫자를 자동으로 섞는 메서드 생성 출력문 : [6, 7, 9, 4, 5, 2, 8, 1, 3] 숫자 배열을 섞는 알고리즘은 동일함. 같은 알고리즘을 메서드로 생성하여 재사용이 가능한 코드로 만듬 public static void main(String[] args) { int[] original = {1,2,3,4,5,6,7,8,9}; ArrayShuffle as = new ArrayShuffle(); as.shuffle(original); } } class ArrayShuffle{ //메서드 public void shuffle(int[] a) { Random random = new Random(); for(int i = 0; i
메서드간의 호출 & 참조 static 메서드간의 호출은 가능하지만 static 메서드는 인스턴스 변수 호출 불가능 따라서 static 메서드는 인스턴스 메서드도 호출이 불가능하다. 이유: static 메서드는 그냥 사용이 가능한 메서드지만 인스턴스 변수는 객체를 생성해야 사용이 가능하고 인스턴스 메서드를 호출 시 객체가 존재하지 않을 수 있어 사용이 불가능 static 메서드의 사용은 인스턴스 변수&메서드가 없거나 공유해야할 메모리 정보가 있을 때 사용 오버로딩 (overloading) 정의: 매개변수는 다르지만 같은 기능을 수행; 오버로딩 성립 기준 반환 기준은 상관없음 메서드 이름이 같을 것 매개변수 개수나 타입이 다를 것 반환타입은 int, long이지만 상관이 없다. 매개변수의 타입이 각각 다르고..
static(클래스) & 인스턴스 메서드 인스턴스는 참조변수를 써야하고 클래스 메서드는 객체 생성없이 클래스 변수 이름만으로 호출가능 클래스 메서드 예시: Math.random, Math.round public class Math{ int a; //인스턴스 변수: 모든 클래스, 즉 Math 클래스 전체에 적용되는 인스턴스 변수 int b; int add() { return a + b; } static int add(int a, int b) { //클래스 변수: 하단의 클래스까지만 적용 return a + b; // 지역변수 //지역변수를 사용하고 iv(instance variable = 인스턴스 변수)를 사용하지 않을 때 //static을 붙여 class 변수로 만듬 } } class MathMain{ ..
메서드 코드들을 블록안에 묶어놓은 것 중복되는 코드들을 묶어서 이름을 선언해 코드를 간결화 시킨다. - 코드의 재사용 가능 + 이해하기 쉬워진다 class Card{ public static void main(String[] args) { List list = new List(); int[] n = {1,2,3,4,5}; List.numArr(n); int[] n2 = {6,7,8,9}; List.numArr(n2); } } class List { static void numArr(int[] number) { for(int i = 0; i y ? x : y; } } 출력문 true 5