# 기타제어자 static, final, abstract # static 의미 : 클래스에 속한것 클래스명.멤버변수 -->클래스변수 클래스명.메소드 ---> 클래스메소드 위치 : 멤버변수앞, 메서드앞 ex) static int a=10; // 클래스변수 -->클래스변수 : 모든객체가 공유하는 변수 int b=20; // 객체변수 * static 메서드내에서는 static이 아닌 메서드나 맴버변수는 접근 할 수 없다. # final 의미 : 마지막이라는 의미 위치 : 클래스앞(상속금지), 메서드앞(오버라이딩금지), 변수앞(재할당금지) * 멤버변수는 예외적으로 생성자내에서 값할당이 허용된다. 메서드내에서는 재할당 금지~ # abstract 의미 : 추상적이라는 의미 위치 : 클래스앞, 메서드앞 추..
객체지향언어 : java, c++, c# 객체지향언어의 3가지 특징 1.상속 2.다형성 3.완전캡슐화 # 다형적변수 자식의 메서드중에서 오버라이딩된 메서드만 접근할 수 있다. [sy] 부모 다형적변수=new 자식(); 자식 다형적변수=new 부모(); // 컴파일에러 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 [ex] class A{} class B exstends A{} class C{ public static void main(String args[]){ A o1=new A(); B o2=..
메서드 오버로딩 하나의 클래스에 이름이 같은 메서드를 여러개 선언. 단,매개변수의 자료형과 갯수로 구분할 수 있어야 한다. 이때 반환형은 메서드 오버로딩과 아무런 관련이 없다. class A{ void a(){} void a(int v){} void a(int v1, int v2){} void a(String v){} void a(int v1, String v2){} int a(){} // 컴파일에러 (매개변수 같음) } 메서드오버라이딩 부모메서드를 자식클래스에서 재정의하는 경우 1. 메서드의 시그너처는 같아야한다. 2. 접근제어는 좁아질 수 없다. 3. private, static , final메서드는 오버라이딩 할 수 없다. 4. Exception추가는 불가능하다. [ex] class A..
# 접근제어자 : 클래스앞, 멤버변수앞, 생성자앞, 메서드앞 클래스앞에 선언될 수 있는 접근제어자 : public,default public > protected > default > private public : 접근허용 protected : 접근허용(같은패키지일때, 상속관계일때) 접근금지(다른패키지일때) default : 접근허용(같은패키지일때) 접근금지(다른패키지일때) private : 접근금지 [sy] [접근제어자] class 클래스명{ [접근제어자] 자료형 멤버변수명; [접근제어자] 생성자(){} [접근제어자] 반환형 메서드명(){} }
상속 class B extends A // 자식 extends 부모 A클래스의 메소드를 가져와서(상속받아서) 쓸 수 있다. 왜쓰냐? 중복방지 ,시간,데이터 낭비 방지 개효율(객체지향언어의 특징) this=클래스 안에서 자기 자신을 가리키는 명령어 멤버변수와 매개변수 이름이 같을때 값을 세팅하기 위해서(구분하기위해서) super=오버라이딩 할 때 가려진 부모의 변수(은닉변수)를 호출하는 명령어 부모생성자에 들어있는 숨어있는 변수를 불러오고 싶을때 this()=생성자가 자기 자신을 호출하는 변수(오버로딩 가능) 같은 클래스 안에서 생성자가 다른 생성자를 호출하고 싶을때 super()=부모생성자를 호출하는 변수(역시 오버로딩 가능) 상속관계일때 기본 생성자를 바꾸지 않으면 무조건 호출. 여기서 this 빼고는..
생성자 반환형(ex.void , int 등등)을 선언 할 수 없는 특수한 메서드 메서드명 = 클래스명 메서드 오버로딩을 지원한다. 주소생성할때 딱 한번 호출가능( 주소로 차후 호출불가능-다른메서드랑 다른점) // 클래스에 생성자가 선언되어 있지 않은경우 자동으로 기본생성자(매개변수가 없는)가 선언된다. // 클래스에 생성자가 선언된경우 기본생성자(매개변수가 없는)는 추가되지 않는다. this() :생성자 호출하는 명령어 * this()는 '생성자'(메소드안됨)의 '첫번째'줄에서만 호출가능! (여백은 상관없음) class A{ A(int a){ this("aaa"); // A("aaa"); System.out.println(1); } A(String a){ this(200,"bbb"); // A(20..
배열 변수는 하나의 데이터만 저장 가능, 그래서 여러가지 묶어서 쓸때 사용 [sy] 1. 자료형[] 배열명={값 , 값, ...}; 2 자료형[] 배열명=new 자료형[방갯수]; 3 자료형[] 배열명=new 자료형[]{값,값, ...}; ex) 1 2 3 4 5 6 7 8 9 10 class Array{ public static void main(String[] args){ int[] a={10,20,30};용 System.out.println(a); System.out.println(a[0]); System.out.println(a[1]); System.out.println(a[2]); } Colored by Color Scripter cs 배열의 길이구하기 [sy] int 변수=배열명.length; ..
메서드 영역 [sy] 반환형이 없는 메서드 선언하기 void 메서드명(){ 명령문; .... } 반환형이 없는 메서드 호출하기 클래스 주소=new 클래스(); 주소.메서드명(값); 반환형이 있는 메서드 선언하기 자료형 메서드명(){ 명령문; .... return 값;} 반환형이 있는 메서드 호출하기 클래스 주소=new 클래스(); 자료형 변수=주소.메서드명(값); // 명령행매개변수 args[] // int 변수=Integer.parseInt("문자열1개"); --> 문자열 정수값(숫자)로 변경
조건문 if문 1) if(t/f){ } 참--> 실행, 거짓--> 노실행 2) if(t/f){ }else{ } 참-->if실행 거짓-->else실행 3) if(t/f){ }else if{ } 참-->if실행 거짓-->else if 갔다 내려가서 반복 // 명령문이 한줄일때는 { } 생략가능 ex) 1 2 3 4 5 6 7 8 9 10 11 12 13 class If{ public static void main(String[] args){ if(true){ System.out.println(100); } if(false){ System.out.println(200); } if(3>0){ System.out.println(300); } } } Colored by Color Scripter cs switch문..
주석 코드에 설명 붙인거 주석을 달다. 걍 이거랑 똑같은 의미다. // ----> 한줄만 주석처리 /* ~ */ ----> 사이에있는 범위 주석처리 // 잘못보면 이모티콘처럼 귀엽게생김 2 /=몫값 System.out.println(11%5); -->1 %=나머지값 논리연산자 and , or 이런거다 넘어간다 삼항연산자 세 개의 피연산자가 필요로 하는 연산자 ( if 문과 비슷) [sy] 자료형 변수= 조건문(t/f) ? 값1 : 값2 ; 조건문값이 true면 값1이 변수에 들어가고 false면 값2가 변수가 들어간다. // [sy] =syntax 문법이라는 뜻(정해진 약속, 어떻게 하는지) ---> 이중삼항연산자도 가능 조건문값이 false일때 값2 위치에 다시 조건문이 들어감 증감연산자 b=a++ /..