본문 바로가기
  • think normal

새로워지기/서른의 생활코딩234

ex15) java_oop /* public class Class01 { public static void main(String str[]) { /* int i= 10; System.out.println(i); i=100; System.out.println(i); */ final int i= 10; // 2012. 2. 21.
ex14) java_oop abstract class A { //class A { //void Sub(); /* sub()함수는 이class에서 하는 역할은 없고 A class에서 상속되는 하위class에서 반드시 재정의 시켜서 사용할 것을 의무화하기위한 목적만을 갖고 있다. */ abstract void Sub(); //이럴때 추상적 매소드를 만들어지는데, 함수머릿부앞에 abstract //추상적인 매소드는 구현해서는 안된다. "{}"조차 사용할 수 없다. //추상적인 매소드 뒤에는 그냥 ";"로 끝난다. //추상적인 매소드 뒤에는 반드시 추상적인 class가 되야하므로 ->abstract class A {로 해야한다 //이것을 추상적인 매소드라고 한다. void Sub1(){ //일반맴버함수 : 모두다 추상적인 매소드가 올 필.. 2012. 2. 21.
ex13) java_oop /* class A1{ //final void Display(){ //재정의 원천 봉쇄를 위한 protected void Display(){ //void Display(){ System.out.println("A1:Diaplay()"); } } class A2 extends A1 { public void Display(){ //void Display(){ System.out.println("A2:Diaplay()"); } } public class Over02 { public static void main(String[] args) { A1 a; a =new A1(); a.Display(); a =new A2(); a.Display(); } } **/ /* class AAAA { int a;} class.. 2012. 2. 21.
ex12) java_oop class AA extends Object{ //extends Object는 상속가능 ; 보통의 경우 생략! public String toString(){ return "AA"; } } class BB extends AA{ // 재정의 예 public String toString(){ return "BB"; } } class CC extends BB{ // 재정의 예 public String toString(){ return "CC"; } } public class Over01 { public static void main(String[] args) { Object o; //다형성 구현을 위한 참조변수 범위 정의! (이 예제는 최상위이다.) //AA로 재정의! o = new Object(); System.. 2012. 2. 21.
ex11) java_oop class Acast { int a=1;} class Bcast extends Acast{ int b=2;} class Ccast extends Bcast{ int c=3;} public class TestCast { public static void main(String[] args) { Acast refA; refA = new Ccast(); //접근 범위 파악 1 System.out.println("refA.a의 값은 "+refA.a); //System.out.println("refA.a의 값은 "+refA.b); //System.out.println("refA.a의 값은 "+refA.c); //접근 범위 파악 2 //Ccast cc = refA; Ccast cc = (Ccast)refA; //강제.. 2012. 2. 21.
ex10) java_oop /* //첫 예제 (앞에 내용 생략..? ㅋ 미쳐 못적음 ㅜㅜ) public class Oop001 { public static void main(String[] args) { A kk; kk= new A(); kk.sub(); //다형성 kk= new B(); kk.sub(); //다형성 } } **/ class A { int aa = 1; } class B extends A { int bb = 2; } class C extends B { int cc = 3; } class Oop001 { public static void main(String[] args) { C objc = new C(); System.out.println("objc객체의 객체속성변수 aa의 값은 " + objc.aa); Syste.. 2012. 2. 21.
java _20120220 예제) public class PrintlnMethod { public static void main( String[] args ) { // println()를 이용해 다른 값을 출력 System.out.println( 3 ); System.out.println( 3.14 ); System.out.println( 'c' ); System.out.println( "gemini" ); // System : class명 / out : static맴버 } } 자료형 1) 기본형 : 값 넘기는 call by value int a=5; float f=4.5; ….. methodA(a,f); // methodA 실매개변수 호출 : call by value methodA(int b, float g) { // metho.. 2012. 2. 20.
ex9) java_oop /* //step 01 class BoxT { private int width; // 변수를 private로 선언하여 외부에서 접근을 막는다 private int height; // 정보의 은폐 제공 private int depth; private int vol; public BoxT(int a, int b, int c) { // 클래스의 이름과 같은 이름으로 생성자 선언 width = a; // 초기화 작업 수행 height = b; depth = c; } public int volume() { vol = width * height * depth; //private속성이이지만, 같은 class안 이므로 사용가능! return vol; } } class BoxTestDemo { public static .. 2012. 2. 16.
ex8) java_oop class HumanInformation { String name; int age; String address; } // 2012. 2. 16.
ex7) java_oop class PersonInformationWithMethod { // 멤버 변수 선언 String name; int age; String address; // ( 생성자는 없음 ) -> 자동으로 디폴트 생성자 만듦(JVM이) -> 전역변수 초기화 (String=null, int=0) // 멤버 변수의 값을 출력하는 method public void printInformation() { System.out.println( name + "은 " + age + "세 이고, " + address + "에 삽니다" ); } } public class PrintInformationWithMethod { public static void main( String[] args ) { // 인스턴스 생성. 인스턴스 명은 .. 2012. 2. 16.
ex6) java_oop //Final 예제 /* public class FinalTeat { public static void main(String[] args) { int i= 100; System.out.println(i); i=20; System.out.println(i); } } **/ /* public class FinalTeat { public static void main(String[] args) { final int i= 100; System.out.println(i); //i=200; System.out.println(i); } } **/ class AA{ final int i; //색상 값의 경우 final 사용 . AA(){ // final 생성자에서만 초기화할 수있고 변형은 불가하다.! i=100; } .. 2012. 2. 16.
ex5) java_oop /* class Box { int width; int height; int depth; long idNum; // ->| 4개의 접근지정자가 생략된 데이터 맴버 // new 연산자가 선언될때마다 메모리 생성 static long boxID = 0; // (static 데이터 맴버 = 클래스 변수) 선언 !! public Box() { // 생성자는 결과형(void) 사용불가 idNum = boxID++; //앞에 this.이 생략되있다. // 생성자가 수행될 때마다 클래스 변수의 값을 증가 } public void Dispaly(){ System.out.println( width +""+ height +""+ depth +"="+idNum); } } public class Oop01 { public st.. 2012. 2. 16.
java _20120216 예) class Box { // class Box 를 개별 저장하는 경우! : class앞에 public을 기입, int width; int height; int depth; } + 생성자가 없는 경우, JVM이 디폴트 생성자를 생성한다. super()를 기본으로 포함하는 width=0; height=0; depth=0; 을 만든다. mybox1 = new Box(); //메모리 구조 heap상에 정의된 메모리 공간은 그 기억공간을 지칭하는 별도의 이름이 없고 단지 stack상의 참조 변수가 번지값을 갖고 있을 뿐이다. [public/private] [static/final] 변수형(자료형) 변수명; >맴버변수 1.객체변수 (static과 final이 붙지 않은 변수) 2.static : 클래스 변수 3.. 2012. 2. 16.
ex4) java_oop class Box { int width; // 데이터의 속성과 생성자, 메소드를 가진 클래스 int height; int depth; public Box(int w, int h, int d) { // 생성자, 클래스명과 이름이 같다 width=w; height=h; depth=d; } public int volume() { // 메소드 int vol; vol = width * height * depth; System.out.println("Volume is "+vol); return vol; } } public class Class02 { public static void main(String[] args) { Box vol = new Box(2,3,4); System.out.println(vol.vol.. 2012. 2. 15.
ex3) java_oop /* class SampleClass { // 클래스 헤더부분 int a; int b; // 멤버 변수 부분 int c; public SampleClass(int x, int y, int z) { // 이름이 클래스 명과 같다 a = x; b = y;// 생성자 부분. c = z; //x,y,z = SampleClass지역변수 } public int sum() { // 메소드 부분 int d; d = a + b + c; //=d = this.a + this.b + this.c; return d; } } public class Class01 { public static void main(String[] args) { //SampleClass sam = new SampleClass(); // 값을 원하고 있.. 2012. 2. 15.
ex2) java_oop //중복함수 // : 하나의 클래스안에서 똑같은 이름으로 생성자 맴버함수를 만드는 경우 // 매개 변수의 개수와 타입은 달라야 한다. // 매개 변수의 개수와 타입이 일치하는 위치로 수행조건이 자동적으로 넘어간다. // 하나의 클래스 범위 안에서 구현된다. public class Fun01 { //Add(int a,int b){return a+b;} int Add(int a,int b){return a+b;} double Add(double a,double b){return a+b;} //Add(double a,int b){return a+b;} double Add(double a,int b){return a+b;} double Add(int a,double b){return a+b;} // 결과형은 달.. 2012. 2. 15.
ex1) java_oop //public class Date { class DateClass { //주클래스가 하나의 문서에 들어있으므로,,, // class 앞엔 접근지정자를 public or 생략 둘중 하나만 가능 // class :자료형을 만들기위한 예약어(소문자로쓴다) // DateClass : class명 :사용자 정의명칭 // '{' = Date class의 시작 (set / get) // int year,month,day; //원본 예제 // int 앞엔 접근지정자를 "public,private,protect,생략" + a // =dataClass 맴버함수(=맴버변수=데이터 맴버) // new 연산자로 객체 정의시 메모리 공간으로 만들어질 항목이다. private int year,month,day; // "[a]예제.. 2012. 2. 15.
ex16) java _ 문의 // ( 예제를 왜 이렇게 만들었는지 모르겠다. -_-) 1. /* my 함수예제 01 public class Function { static void sub(){ // void=결과형 (결과치를 반환(=호출받기전엔!)하지않는다!) // sub=함수명(사용자정의) // () 안에 매개변수를 넣을 수 있다. !!! // 1. sub()를 객체로 만들어 호출하던가 // (즉 = 객체를 new연산자로 정의하고 object명으로 접근하던가 // 2. "static 맴버함수"로 선언 필요! (println는 메이커가 제공) System.out.println("SUB 함수안 +" + a); } public static void main(String[] args) { System.out.println("Main 함수.. 2012. 2. 15.
ex15) java class Test11{ //int Sum(int a,b){ // = X //함수의 매개변수 앞에는 반드시 하나의 자료형이 개별적으로 따라 붙어야한다. int Sum(int a,int b){ return (a+b); } } public class Fun08 { public static void main(String[] args) { Test11 t11 = new Test11(); //t11.Sum(10,20); System.out.println(t11.Sum(10,20)); } } 2012. 2. 15.
ex14) java class Test06{ void Star(int st){ // [자료형 + 매개변수]의 개수 일치 필요!!! -> int선언 // st = 매개변수 = 사용자 정의명칭 // = 수행조건 넘어와서 int st라는 코드를 만남으로서 메모리 확보하고 // Star 함수영역을 벗어남으로써 메모리는 소멸된다 // = 지역변수 st=50 ( 대입의 개념 X, 초기화의 개념!!!) int i; for(i=0;i 2012. 2. 15.
ex13) java class Test02{ void Star(){ //접근 지정자 생략(public,private,protected,생략) System.out.println("******"); return; //생략가능 } } public class fun05 { public static void main(String[] args) { //1 Test02 t; //t 초기화null 됨. 단, 객체의 존재는 아직X // t= new Test02(); Test02 t = new Test02(); t.Star(); //Star(); System.out.print("hello Java"); t.Star(); } } 2012. 2. 15.
java _20120214 Oop 개요 * 특성 정확한 데이터 관리 (변수로 바로 접근=x) = 변수 주변을 둘러싸고 있는 매개 변수를 통해서 접근함으로서 사용자에게 입력(변경), 또는 재요구, 자체변형, 접근불가 등을 할 수 있다. 은익화 : 외부에 바로 접근 X -> 맴버 함수를 통해서 접근 상속성 : 재사용성 + 확장 + 프로그렘모듈 재사용가능 다형성 : 다양한 결과를 받을 수 있다. (단, '상속성->재정의'의 사전정의필요) * 구조 (절차(구조/하양식설계/모둘화)=x) = 객체지향(oop) *프로세스 =CBD 분석 속성값(맴버변수에서 저장) 메소드(객체의 맴버=맴버함수) 외부함수(전역함수,외부함수) * class(설계도) -(인스턴스화)-> Object(객체/집) : 객체를 생성할 수 는 있지만 정보 처리는 불가하다. =.. 2012. 2. 15.
ex12) java public class Function1 { //Call by value 및 인수 전달 방식 public static void Star(int st){ int i; for(i=0; i 2012. 2. 14.
ex11) java Function 1. public class Function1 { public static void sub(){ System.out.println("SUB 함수안"); } public static void main(String[] args) { System.out.println("Main 함수처음"); sub(); System.out.println("Main 함수끝"); } } 2. public class Function2 { /* //에러 예제 : class 개념 public void sub(){ System.out.println("SUB 함수안"); } public static void main(String[] args) { System.out.println("Main 함수처음"); sub(); Sy.. 2012. 2. 14.
ex10) java 1. public class arr01 { public static void main(String[] args) { /* * // 객체 : 예제 arr02 int m[]; //= int []m; //m = 사용자 정의 명칭(기억공간=heap상의m의 주소) //stack 상에 4byte로 null로 확보된다. m= new int[5]; // new를 통해 heap상에 4byte*5개를 확보한다. //기본적으로 length가 확보되고 그 안에 "5"가 기억된다. //단, 접근은 m.length로 한다. System.out.println("개수:"+m.length); System.out.println(m[0]); System.out.println(m[1]); System.out.println(m[2]); Sy.. 2012. 2. 14.
ex9) java 1. public class For01 { public static void main(String[] args) { /* //초기 조건 증감식 //int i; for(int i=0;i0;j--){ System.out.print("\n"); System.out.print('*'); System.out.print(j); } // 조건 생략 int i=1; for( ;i 2012. 2. 14.
ex8) java 1. public class LocalVariableIntTest { //class변수를 선언하지않음 public void variablePrint(){ int intValue = 0; //지역변수는 초기화 시켜줘야한다. System.out.println("LocalVariableIntTest =" +intValue); } public static void main(String[] args) { MemberVariableIntTest local= new MemberVariableIntTest(); local.variablePrint(); } } 2. public class MemberVariableIntTest { int intValue; //전역변수는 초기화하지 않아도 자동으로 0을 넣어준다. publ.. 2012. 2. 14.
java _20120213 for문의 범위는 : for~최초의;만날때까지로 인정 : 플로어 차트에서 마름모 모양 -> 다음은 사각형 (+ NS차트 참조) 배열 : 기억장소의 개수를 저장하는 length 맴버가 자동으로 만들어진다. : 기본적으로 new 연산자로 정의 = 객체 : 배열의 시작번지 받아들일 수 있는 참조 변수를 스택 메모리 상에 정의했을 뿐이다. (실제배열은 만들어지지 않는다.) :1차원 자료형 -> 자료형 배열명[] 배열명 new 자료형[개수] : new연산자는 heap영역에 저장된다. : 다차원 배열 -> 불필요하게 차원수를 높이면 낭비될 수 있다. -> 자료형 배열명[][] // 선언:실제 구성은X // stack에 참조형 변수가 만들어짐(null로) 배열명 new 자료형[행의 개수][열의 개수] // 선언:실제.. 2012. 2. 14.