IT 236

자바 static, final (멤버변수, 메소드, 클래스)

문법순서 : 접근지정자 static final멤버변수 : 수정못하게 막아줌 //변수의 상수화. 상수 정의메소드 : 메소드 오버라이딩 못하게 막아줌클래스 : 상속 못하게 막아줌 package test; /*final*/ class FinalTest { // 상속 못하게 막아줌. /*final*/주석 풀어서 테스트 해보기public final int a = 10; // 인스턴스단위 상수public static final int B = 20; // [클래스 단위 상수] /*final*/ void prn() { // 메소드 오버라이딩 못하게 막아줌. /*final*/주석 풀어서 테스트 해보기System.out.println("FinalTest prn()");}} class SubFinalTest extends ..

IT/Java 2018.07.20

자바 static, 클래스변수, 인스턴스변수 사용 예제

package test; class Account {// 멤버변수 인스턴스변수 정수형 count 클래스변수 totalint count;static int total; // static 초기화 코드블록 또는 static 메소드 안에서는// this 또는 super 참조변수를 사용 못함!// 왜냐하면 this 또는 super는 객체를 지정하는 용도이기 때문 Account(int num) {count = count + num;total = total + num;}static void showTotal() {System.out.println("total:" + total);}} // Account public class Test2 { public void methodA() {System.out.println("..

IT/Java 2018.07.20

자바 static, 클래스변수, 인스턴스변수

static : 접근지정자 static final 자료형 - 함수 정의시 순서 객체생성없이 바로 멤버변수나 메소드에 접근 가능 static변수는 공유변수 역할 static메소드는 공유변수를 활용한 기능 표현. -> static메소드 안에서는 non-static멤버는 사용못함 static 초기화 코드블록 또는 static 메소드 안에서는this 또는 super 참조변수를 사용 못함! 왜냐하면 this 또는 super는 객체를 지정하는 용도이기 때문 package test; class StaticTest {// 클래스단위 멤버변수. 클래스변수. 정적변수. 클래스마다 한개씩 가짐 -> 공유static int a;static { // 클래스변수 초기화a = 10; }// 클래스단위 메소드는 클래스영역에 로딩되고..

IT/Java 2018.07.20

자바 다형성 예제 (ArrayList)

package test; import java.util.ArrayList; // ArrayList를 사용하려면, import해줘야된다 public class Test { public static void main(String[] args) {ArrayList list = new ArrayList(); // add() 메소드의 매개변수 타입이 Object형// Object: 모든 클래스의 최상위 부모클래스list.add("일"); // Stringlist.add('이'); // char Characterlist.add(3); // int Integerlist.add(4.5); // double Double String str = (String) list.get(0); // get으로 돌려받는 값이 Obje..

IT/Java 2018.07.20

오라클 PL/SQL insert, update, delete, merge 예제

-- pl_test 테이블 생성 create table pl_test (no number, name varchar2(10)); -- pl_seq 시퀀스 생성 create sequence pl_seq; -- pl_test에 값을 insert하는 pl/sql문 begin insert into pl_test values(pl_seq.nextval,'bbb'); end; SET VERIFY off; -- 사용자값을 입력 받기 전의 pl/sql문과 -- 입력받은 값을 대입한 후의 pl/sql문을 출력창에 표출할지 여부-- off 이므로 출력하지 않는다 -- pl_test2 테이블 생성 create table pl_test2( no number, name varchar2(10), addr varchar2(10));..

IT/Oracle 2018.07.19

오라클 PL/SQL

SET serveroutput ON; -- 화면에 결과값 출력 여부 DECLARE v_deptno dept.deptno%TYPE; -- dept테이블의 deptno와 같은 타입의 변수를 만들겠다는 의미 v_loc dept.loc%TYPE; BEGIN select deptno, loc into v_deptno, v_loc from dept where deptno = 40; DBMS_OUTPUT.PUT_LINE(v_deptno||' '||v_loc); -- 출력창에 출력, ||는 문자열 더하는 연결연산자 END; -- id 값을 입력 받아 pl/sql문 실행 DECLARE v_deptno dept.deptno%TYPE; v_loc dept.loc%TYPE; BEGIN select deptno, loc int..

IT/Oracle 2018.07.19

자바 다형성, 도형 예제

파일명 : Test3.java package com.test; // 다형성 : 동일한 코드로 다른 기능 실행 // 클래스 Shape 도형 // 부모 // 멤버변수 double area // 면적 저장공간 // 메소드 getArea() return area // 면적구해서 리턴하는 메소드class Shape {double area;double getArea() {return area;}}// 클래스 Circle 원 // 상속 Shape // 멤버변수 정수형 r=5 // 반지름 // 메소드 오버라이딩. 원면적 구해서 리턴하는 메소드class Circle extends Shape {int r=5;@Overridedouble getArea() {area = r * r * 3.14;return area;}}// ..

IT/Java 2018.07.18

자바 다형성, 정적바인딩, 동적바인딩, instanceof

○ 정적바인딩, 동적바인딩●정적바인딩(컴파일시) - 컴파일러가 객체 유무 관계없이 바인딩, 참조변수가 null이어도 컴파일러 오류 없다●동적바인딩(실행시) - 실제 실행시에 jvm이 실제 객체에서 오버라이딩이 있는지 확인하고 바인딩해줌 ○ instanceof 연산자 : 실행시 실제 객체가 어떤 타입인지 확인레퍼런스 instanceof 클래스명 - 레퍼런스 : 참조변수 타입이 아니고, 참조변수가 가지고 있는 객체의 타입 - 클래스명 : 레퍼런스와 같거나, 레퍼런스의 부모이면 true ex) Animal animal = new Puppy(); 일 경우, animal은 Puppy타입이다 파일명 : Test2.java package com.test; class Animal {Animal() {super();}i..

IT/Java 2018.07.18

자바 다형성, 참조형(레퍼런스형) 형변환, 업캐스팅, 다운캐스팅

파일명 : Test1.java package com.test; class Parent {void parentPrn() {System.out.println("parentPrn()");}} class Child extends Parent {void childPrn() {System.out.println("childPrn()");}} public class Test1 { public static void main(String[] args) {// 기본자료형 형변환(호환가능한 자료형 : 숫자형)double d = 3; // int -> double 자동 형변환System.out.println(d);int a = (int) 3.4; // double -> int 강제(명시적) 형변환System.out.printl..

IT/Java 2018.07.18

자바 상속, super() 생성자 호출

super() 생성자 호출부모클래스의 기본생성자가 아닌 실제로 존재하는 다른 오버로딩 생성자를명시적으로 호출 가능하게 해줌. 파일명 : Test9.java package com.test; class MyPoint2D {int x;int y; // 생성자 x y 받는 생성자MyPoint2D(int x, int y) {super();this.x = x;this.y = y;}// prn() 메소드 출력 "x, y"void prn() {System.out.print(x+", "+y);}} class MyPoint3D extends MyPoint2D { // 상속 MyPoint2Dint z;// 기본생성자MyPoint3D() {// 부모클래스의 기본생성자 호출// 기본생성자 으면 생성자 지정// 부모의 존재하는 ..

IT/Java 2018.07.17