JAVA - OOP(객체지향)
단위 영역 각각 개발 가능 - package(나중에 웹의 directory가 됨, package 없이는 class 생성 x)
=> 나중에 하나로 합침
JAVA의 장점
- 멀티 스레드를 활용함
(따로 라이브러리가 아닌 자체 멀티스레드 기능 탑재) - 코드 심플
- 객체지향 언어
- 유지보수 용이
- 여러가지 운영체제 서버에 적합
- 독립적 플랫폼을 사용함 - VM을 사용하기 때문에 가능
단점
- VM( Virtual Machine ) 이 있어야 돌아감
⚡ 변수 종류 및 출력
- class 생성 후 method를 생성할 수 있음
package oop; //package 단위명 = project 디렉토리 구분 //변수 종류 및 출력 public class oop1 { //class명 public static void main(String[] args) { //method : (javascript의 함수에 해당) //String[] args : 인자값, 빠지면 작동 안됨 //System.out : 결과를 출력하는 클래스 //println : 출력형태 메소드(한칸 내려쓰기) System.out.println("홍길동"); // ln : <br>과 같다고보면 댐 System.out.println("강감찬"); //print : 모든 내용을 한줄에 출력(유관순이순신 이렇게 출력) System.out.print("유관순"); System.out.print("이순신"); // printf : (지시자 %s-문자,%b-숫자,%n-줄바꿈)에 다음 ""에 들어있는 값 넣어서 출력 System.out.printf("%s님 %s입니다!","에이핑크","화이팅"); } }
⚡ class형태,자료형태의 data type
- 단위 크기 : bit,Byte,KByte,MByte,GB,TB...
- class형태(자료 형태를 for문으로 돌려 열로 만든 것) / 자료형태(숫자 or 글자 한글자)
package oop; public class oop1 { //class명 public static void main(String[] args) { //---- class 형태 String user = "홍길동"; //문자열 변수(class) Integer age = 25; //숫자열(class) //--- 자료 형태 int point = 5000; //숫자(정수) float money = 25.25f; //소수(실수) double sales = 0.13; //소수 //2byte:한글자(한글자만 담을 수 있음), ""붙이면 안됨~! ''붙어야함 !!!!! char agree = '홍'; //System.out.print(user + "님 환영합니다"); System.out.printf("%s 님 환영합니다. 포인트 : %d" , user, point); int sum = age + point; System.out.println(sum); //float total = money + sales; //error //float < double 자료형이 더 크다 //float + float : float,double 둘다 계산 결과 가능 // double + double : 무조건 double로 받기 / double + float : double(더 큰 자료형) double total = money + sales; System.out.println(total); //정수 + 실수 결과는 실수로 처리해야만 정상적으로 계산이 처리된다. int a = 90; float b = 12.3f; float c = a+b; //float,double 둘다 가능 System.out.println(c); } }
⚡ 자료형(숫자)
package oop; public class oop2 { public static void main(String[] args) { //int : 21억정도까지만 담을 수 있음 //long : 9경(21억 이상이면 뒤에 L붙여줘야함) //short : 3만까지,그 이하(ex-장바구니..) long a = 2234567891L; System.out.println(a); short b = 32345; //정상출력 System.out.println(b); } }
⚡ 문자 형태 변환
package oop; //문자 자료형을 클래스로 변환 public class oop2 { public static void main(String[] args) { char word = '홍'; // 꼭 '' 사용! String name = String.valueOf(word); //char => String 형태로 변환 //class java.lang.String 출력(class타입형태 출력해라) System.out.println(name.getClass()); String id = "hong"; char name2 = id.charAt(2); //charAt(배열번호) / (3번째 단어 배열 출력하세요) System.out.println(name2); //n 출력 (javascript의 indexOf() 기능) } }
⚡ 숫자형태 변환
package oop; public class oop2 { public static void main(String[] args) { /* Integer(int 사이즈 정도 된다) => short,int,byte 변환 가능 , 실수형은 불가능 */ //숫자 자료형을 클래스로 변환 int n = 100; Integer z = n; System.out.println(z); //숫자 클래스를 숫자 자료형으로 변환 Integer n2 = 1000; int z2 = n2; System.out.println(z2); } }
⚡ 문자열 클래스를, 숫자형 클래스 or 숫자 자료형으로 변환
package oop; public class oop2 { public static void main(String[] args) { /* 문자열 클래스를 숫자형 클래스 또는 숫자 자료형으로 변환 */ String total = "10000"; String etc = "19890000"; //두가지 방법(p+p,p+v,v+v 다 쓸 수 있음) //parseInt : 기본 자료형 int -> 직접적으로 문자 데이터를 변환 //valueOf : 기본 자료형 int // -> 문자 데이터 값을 검토 후 변환(정수인지 실수인지..등 - 실제 속도가 더 느림) // 안에 paseInt가 포함되어있다 //더해지는 값 봐가면서 데이터 타입 정해줘야함 short는 x (Integer은 사용 가능) //javascript의 Number()기능 int all = Integer.parseInt(total) + Integer.parseInt(etc); System.out.println(all); int all2 = Integer.parseInt(total) + Integer.valueOf(etc); System.out.println(all2); /*-----------------------------------------------*/ //실수 자료형을 문자 클래스로 변환 float m = 38.72f; String sm = String.valueOf(m); System.out.println(sm); } }
- Parsing : JASON 및 XML을 받은 문자를 배열화 하는 작업을 말함
- Parser : database의 값을 XML또는 JASON으로 변환 작업을 하는 것을 말함
⚡ 외부 클래스 및 메소드 데이터 호출
- 동일한 클래스명 사용 불가(한 패키지 전체에서도 중복 불가)
package oop; //클래스와 메소드의 형태 public class oop3 { //public class는 한개의 파일당 한번만 사용 가능 //public class명과 파일명은 동일해야함 즉,public class abc => abc.java public static void main(String[] args) { //main : public class에서만 사용하는 메인(실행) 메소드 //실제로는 외부 class를 작성 후 여기에 때려 넣음 //새롭게 호출하겠단 뜻~ new하는 순간 메모리에 저장(pc 껏다 키면 다 사라짐) box b = new box(); //인스턴스화 시킴 //클래스(new box()),객체(box),인스턴스(b) b.abc(); //해당 클래스에 abc메소드 호출 b.bbb(); //b를 인스턴스명으로 사용했기 때문에 다른 변수로 사용할 수 없음 box2 b2 = new box2(); b2.kkk(); } } class box { //외부 class 선언 public void abc() { //box를 호출해야 abc 메소드를 쓸 수 있음 System.out.println("외부 클래스 및 메소드 데이터 호출"); } public void bbb() { System.out.println("bbb 메소드 데이터 호출~!"); } } class box2 { //동일한 클래스명 사용 불가(한 패키지 전체에서도 중복 불가) public void kkk() { System.out.println("kkk 메소드 호출!"); } }
⚡ 메소드 인자값 호출 및 전달
- 외부 class는 동일한 package에 있을 경우 같은 이름을 사용하지 못함
- 해당 class 안에서 method는 동일한 이름을 사용할 수 있음
(단, 인자값에 대한 자료형 및 인자값 갯수에 따라 동일한 이름을 사용가능함)
package oop; //메소드 인자값 호출 및 전달 public class opp4 { public static void main(String[] args) { oop4_box op4 = new oop4_box(); op4.abc(); op4.abc("123"); op4.abc(5, 2); } } class oop4_box { public void abc() { System.out.println("테스트"); } //자바는 인자명 작성시 형태도 꼭 적어줘야함 //아래 네개는 다 다른거 , 인자값의 형태가 다 다르므로 public void abc(String a) { //문자 인자값을 받는 메소드 System.out.println("테스트222"); } public void abc(int a) { //숫자 인자값을 받는 메소드 System.out.println("테스트333"); } public void abc(int a, int b) { //숫자 2개의 인자값을 받는 메소드 System.out.println("테스트333"); } //이렇게는 사용 불가 // public void abc(int a) { // System.out.println("테스트333"); // } }
'CLASS > JAVA' 카테고리의 다른 글
#3-2 / 반복문 (0) | 2024.05.02 |
---|---|
#3-1 / 외부class,if문 (0) | 2024.05.02 |
#2-1 / 로그인 form(javascript) (0) | 2024.04.30 |
#1-2 / Apache-tomcat 웹 페이지 (0) | 2024.04.29 |
#1-1 / start,setting (0) | 2024.04.29 |