728x90
반응형
728x90
반응형
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{ ..
return문 반환값 void일 경우에 return을 써서 조건이 맞지 않으면 호출문으로 되돌아감 void가 아닐경우엔 return을 반드시 써서 반환값을 지정해야함 따라서 아래의 코드같은 경우에는 number 값이 9를 초과했으므로 출력문이 실행되지 않음 public class CardClss{ public static void main(String[] args) { //선언부 test tt = new test(); tt.gugu(10); tt.gugu(4); } } class test{ //반환타입이 void일 경우 return문 사용하여 조건이 맞지 않을경우 호출한 곳으로 되돌리기 가능 void gugu(int number) { if(!(0
메서드 코드들을 블록안에 묶어놓은 것 중복되는 코드들을 묶어서 이름을 선언해 코드를 간결화 시킨다. - 코드의 재사용 가능 + 이해하기 쉬워진다 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
클래스의 정의 1. 정의 변수 > 배열 > 구조체 > 클래스 순으로 나열됨 변수: 하나의 데이터를 저장가능한 공간 int 1 배열: 여러개의 같은 종류의 데이터를 하나로 저장가능한 공간 int 1 int 2 int 3 구조체: 서로 관련된 (타입 상관없이) 여러 데이터를 저장 가능한 공간 int 1 String hello float 1.2 클래스: 데이터와 함수의 결합, 즉 구조체 + 함수 int 1 String hello float 1.2 + 함수 1. 정의2 특징: 원하는 타입을 직접 만들 수 있다. 아래와 같이 각각의 다른 타입의 변수를 선언하고 메서드를 만든다 그 후에 선언한 class의 변수를 new를 통해서 선언함으로써 코드를 간결화 시킬 수 있다. (타입 선언 필요없음) 각각의 변수를 cla..
Scanner 버퍼 오류 Int입력 후 Enter키가 다음 scanner인 nextLine에 대입되어 원하는 String 값을 넣지 못하는 오류 System.out.println("숫자를 입력"); int i = scanner.nextInt(); scanner.nextLine(); System.out.println("글자를 입력"); String s = scanner.nextLine(); //숫자를 입력 //3 //글자를 입력 따라서 int값 이후의 enter를 저장해주기위해 빈 scanner를 하나 생성 입력된 보이지 않는 enter값이 빈 scanner에 들어가고 원하는 값을 nextLine에 넣을 수 있었음 계산순서에 따른 Casting (형변환) 2 byte to 4 byte 오류 char을 in..