2017년 9월 15일 금요일

[01] OOP(Object Oriented Programming, 객체지향 프로그래밍)

[01] OOP(Object Oriented Programming, 객체지향 프로그래밍)

1. 객체 지향(콤포넌트, 부품)의 특징
   - 한번 개발자가 개발한 코드는 "적은 수정"으로 재사용이 가능하도록함.

   - 콤포넌트(완성된 소스)가 다른 콤포넌트와 결합하여 하나의 프로그램을 형성합니다.
     . A 프로그램 --> 모듈 --> 출력 --> 처리 종류
     . B 프로그램 --> 모듈 --> 출력 --> 처리 종류
                      │
                      ↓
                     (공통모듈)
     . A 프로그램 --> 콤포넌트 <-- b="" p="">       워드 패드  --> 파일 열기 <-- p="">  
   - OOP의 개념을 바탕으로 업무용 프로그램을 제작하면 관리비용이 절감될 수 있다.



Project type: Java Project
        name: oop




[02] 메소드
   - 메소드(함수)는 멤버 변수(데이터)를 조작하고 처리하는 역활을 합니다.

   - 2번이상 호출되는 로직이나 향후 호출될 가능성이 있는 로직은
     메소드의 대상이 됩니다.
    
   - 리턴값이 없는 메소드는 void(공허한, 비어있는) 형을 지정합니다.

   - 메소드가 받는 인수의 데이터 타입은 메소드를 호출하는 쪽과
     일치해야 합니다. 


1. 하나의 클래스에서 필드(변수)의 출력

[실행 화면]
객제지향
웹프로그램
개발프레임워크

>>>>> FieldTest.java
---------------------------------------------------------------------------------------
public class FieldTest {
  String java = "객체 지향";
  String jsp = "웹 프로그램";
  String spring = "개발 프레임워크(자동화 소스)";
 
  public static void main(String[] args) {
    FieldTest ft = new FieldTest();
    // ft: 객체명, new: 메모리 할당

    System.out.println(ft.java);
    System.out.println(ft.jsp);
    System.out.println(ft.spring);
   
    String summer="동해";
    System.out.println("summer: " + summer);
  }

}

---------------------------------------------------------------------------------------



2. 하나의 클래스에서 메소드 호출
   - public void print(){ ... } : 출력 메소드
   - public void line(){ ... }  : 라인 출력 메소드

[실행 화면]
──────────
* 국어: 80
* 영어: 90
* 총점: 170
* 평균: 85
──────────
* 국어: 95
* 영어: 100
* 총점: 195
* 평균: 97
──────────
* 국어: 60
* 영어: 70
* 총점: 130
* 평균: 65
──────────

>>>>> /src/Sungjuk1.java
---------------------------------------------------------------------------------------
public class Sungjuk1 {
  int kuk = 80; // 필드, 멤버 변수, 인스턴스 변수
  int eng = 90;
  int tot = 0; 
  int avg = 0; 
 
  public void print(){ // 메소드
    tot = kuk + eng;
    avg = tot / 2;
   
    System.out.println("* 국어: " + kuk);
    System.out.println("* 영어: " + eng);
    System.out.println("* 총점: " + tot);
    System.out.println("* 평균: " + avg);
  }
 
  public void line(){
    System.out.println("──────────");
  }
 
  public static void main(String[] args) {
    Sungjuk1 sj = new Sungjuk1();
   
    sj.line();
    sj.print();
   
    sj.line();
   
    sj.kuk = 95;
    sj.eng = 100;
    sj.print();
    sj.line();
   
    sj.kuk = 60;
    sj.eng = 70;
    sj.print();
    sj.line();
   
  }

}


---------------------------------------------------------------------------------------




3. 변수의 사용
   - public void total(){ ... }
   - public void point(){ ... }
   - public void print(){ ... }
   - public void line(){ ... }

[실행 화면]
영화명: Gravity <- p="" print="">성  인: 8000
학  생: 6000
합  계: 14000   <- p="" total="">포인트: 700     <- 5="" p="" point="">
>>>>> Movie.java

public class Movie {
  String movie = "그래비";  // 필드
  int price1 = 10000;
  int price2 = 8000;
  int tot = 0;
  int point = 0;
 
  public void total(){ // 합계 메소드
    tot = price1 + price2;
  }
 
  public void point(){ // 포인트 메소드
    point = (int)(tot * 0.05);
  }
 
  public void print(){ // 인쇄, 다른 메소드 호출 가능
    System.out.println("영화명: " + movie);
    System.out.println("성  인: " + price1);
    System.out.println("학  생: " + price2);
    total();
    System.out.println("합  계: " + tot);
    point();
    System.out.println("포인트: " + point);
  }
 
  public static void main(String[] args) {
    Movie movie = new Movie();
    movie.print();

  }

}




[03] 메소드로 데이터의 전달
     - 메소드가 실행될 때 처리할 데이터를 전달 받을 수 있습니다.

1. 메소드가 데이터를 전달받아 출력하는 메소드
   - public void print(String str){ ... }

[실행 화면]
1. 자바 개발자 과정
2. A
3. 1000
4. 10.5
5. false

>>>>> /src/TransferTest.java

public class TransferTest {
  public void printStr(String str){ // Call By value
    System.out.println("1. " + str);
  }
 
  public void printChar(char chr){
    System.out.println("2. " + chr);
  }
 
  public void printInt(int i){
    System.out.println("3. " + i);
  }

  public void printDouble(double d){
    System.out.println("4. " + d);
  }
 
  public void printBoolean(boolean bol){
    System.out.println("5. " + bol); 
  }
 
  public static void main(String[] args) {
    TransferTest tt = new TransferTest();
    tt.printStr("자바 개발자 과정");
    tt.printChar('A');
    tt.printInt(1000);
    tt.printDouble(10.5);
    tt.printBoolean(false);
  }

}




2. 메소드가 두개 이상의 데이터를 전달받아 출력하는 메소드
   - public void print(String str, int kuk){ ... }

[실행 화면]
자바 개발자 과정 A
자바 개발자 과정 A 1000
자바 개발자 과정 A 1000 10.5
자바 개발자 과정 A 1000 10.5 false

>>>>> /src/TransferTest2.java

public class TransferTest2 {
  public void print(String str, char chr){
    System.out.println(str + " " + chr);
  }

  public void print(String str, char chr, int i){
    System.out.println(str + " " + chr + " " + i);
  }

  public void print(String str, char chr, int i, double d){
    System.out.println(str + " " + chr + " " + i + " " + d);
  }

  public void print(String str, char chr, int i, double d, boolean bol){
    System.out.println(str + " " + chr + " " + i + " " + d + " " + bol);
  }
 
  public static void main(String[] args) {
    TransferTest2 tt = new TransferTest2();
    tt.print("자바 개발자 과정");
    tt.print("자바 개발자 과정", 'A');
    tt.print("자바 개발자 과정", 'A', 1000);
    tt.print("자바 개발자 과정", 'A', 1000, 10.5);
    tt.print("자바 개발자 과정", 'A', 1000, 10.5, false);
  }

}




[04] 콤포넌트 클래스의 분리
     - 자바는 기본적으로 클래스 분리 개발 및 실행 환경을 제공함.


1. 프로젝트를 새로 만들고 클래스를 분리하세요.

Project type: Java Project
        name: oop2


출처 : https://junghamin.blogspot.kr


for문전에 public static


public class randomNum {

    public static int[] main(String[] args) {

        final int num[] = new int[6];

   int MAX = 6;

            int xnum;

            int icount, j;


        for (icount = 0; icount < MAX; icount++) {

2017년 9월 13일 수요일

리눅스 x-windows 창크기 조절 방법 쉽게 하자.

linux X-windows  windows resize 방법
리눅스 x-windows 창크기 조절 방법 쉽게 하자.



Alt + mouse right-click + drag

This is maybe the easiest and most useful way of resizing windows. I’m tempted to say that once you got accustomed to this it’s hard to go back. Simply hold the Alt key, right-click somewhere inside the window and drag to resize. It works intriguingly well and is a very nice complement to the easiest way of moving windows: holding Alt and left-click drag.



Alt + mouse right-click + drag

이것은 아마도 창의 크기를 조절하는 가장 쉽고 유용한 방법 일 것입니다. 나는 일단 익숙해지면 되돌아 가기가 어렵다고 말하고 싶다. Alt 키를 누른 상태에서 창 안쪽을 마우스 오른쪽 버튼으로 클릭하고 드래그하여 크기를 조정하십시오. 그것은 흥미롭게 잘 작동하고 Alt와 왼쪽 클릭 드래그를 잡고 윈도우를 움직이는 가장 쉬운 방법을 보완 해줍니다.