'Programing/JAVA'에 해당되는 글 17건

  1. 2015.02.10 Setter와 Getter
  2. 2015.02.10 다형성 배열을 이용하여 객체를 생성!
  3. 2015.02.10 추상 클래스, 추상 메소드의 개념
  4. 2015.02.10 소수점 자리 출력하기
  5. 2015.02.10 상속
  6. 2015.02.10 피보나치 수열
  7. 2015.02.10 소켓통신

2015. 2. 10. 14:11 Programing/JAVA

Setter와 Getter

class Clock{

  private String  time;

 

 public void setTime(String t){

  time = t;

 }

 public String getTime() {

  return time;

 }

}

public class ClockTestDrive {

 public static void main(String args []){

  Clock c = new Clock();

  

  c.setTime("1256");

  String tod = c.getTime();

  System.out.println(tod);

 }


}



인스턴스 변수들은 private로 선언하고 

setter 와 getter는 public 으로 선언하는 것이 바람직하다고 한다.


이는 객체지향 캡슐화를 지향하기 위해서 인데

private로 선언된 변수를 setter와 getter를 이용하여 수정하여

다른사람이 데이터(private로 선언된 변수)를 함부로 수정하지 않도록 하기 위함이란다.



Posted by kimmayer

다형성을 사용하면 레퍼런스 유형을 실제 객체 유형의 상위클래스 유형으로 지정할 수 있다!


예제)

Animal[] animals = new Animal[5];


animals [0] = new Dog(); 

animals [1] = new Cat(); 

animals [2] = new Wolf(); 

animals [3] = new Hippo(); 

animals [4] = new Lion();


for (int i = 0; i < animals.length; i++) {


animals[i].eat();

animals[i].roam();

}


Animal 배열에는 Animal의 하위클래스에 속하는 모든 객체를 집어넣을 수 있다.


진하게 표시된 부분이 다형성과 관련하여 가장 중요한 부분, 배열의 모든 원소에 대해 순환문을 돌려

Animal 클래스에 들어있는 메소드 중 하나를 실행시키면 각 객체마다 올바른 메소드를 실행하는 것을 확인할 수 있다!

'Programing > JAVA' 카테고리의 다른 글

배열과 객체생성 잊지 말아야 할 점!  (0) 2015.02.10
Setter와 Getter  (0) 2015.02.10
추상 클래스, 추상 메소드의 개념  (0) 2015.02.10
소수점 자리 출력하기  (0) 2015.02.10
상속  (0) 2015.02.10
Posted by kimmayer

추상 클래스는 인스턴스를 만들 수 없는 클래스이다.


흔히 생각하는 Dog, Cat 등은 구상 클래스에 해당하지만

Animal, Feline 등은 추상 클래스에 속한다.


개나 고양이는 다리가 몇개? 머리가 몇개? 뭐를 주로하는지? 를 생각하고 구상 할 수 있지만

동물이라던가 고양이 과는 구체적으로 무언가를 구상하기 어렵다.


추상클래스와 구상클래스를 만들때에도 이런 사고방식을 가지고 만들면 될 듯 하다.

그리고 추상 클래스는 확장성이다! 아무래도 인터페이스를 공부하면 추상 클래스가 어떤 

효율이 있는지 알 수 있을듯 싶다. (금방 포스팅하겠슴다)


추상 메소드는 몸통이 없다!

추상 메소드는 반드시 오버라이드를 해야하는 메소드이다.


public abstract void eat(); 로 끝내면 된다.


추상 메소드를 만들때는 클래스도 반드시 추상 클래스로 만들어야 한다.


추상메소드는 다형성을 위해 존재한다.

상위클래스 유형을 메솓의 인자나 리턴 유형 또는 배열 유형으로 쓸 수 있게 만드는 능력이 필요한데,

그래야만 새로운 유형을 처리하기 위한 새로운 메소드를 추가하거나 기존의 메소드를 고칠 필요없이 프로그램에 새로운 하위 클래스 유형을 추가할 수 있다.



'Programing > JAVA' 카테고리의 다른 글

Setter와 Getter  (0) 2015.02.10
다형성 배열을 이용하여 객체를 생성!  (0) 2015.02.10
소수점 자리 출력하기  (0) 2015.02.10
상속  (0) 2015.02.10
피보나치 수열  (0) 2015.02.10
Posted by kimmayer

printf를 사용하면(c와 똑같다) JAVA에서 소수점 자리가 출력 가능하다.



System.out.printf("%.1f", c);



이 문장은 소수점 첫째 자리까지 출력하는 소스코드 이고

뒤에 f나 d 등 을 사용하여 int 형 float형 모두 출력 가능하다.

'Programing > JAVA' 카테고리의 다른 글

다형성 배열을 이용하여 객체를 생성!  (0) 2015.02.10
추상 클래스, 추상 메소드의 개념  (0) 2015.02.10
상속  (0) 2015.02.10
피보나치 수열  (0) 2015.02.10
소켓통신  (0) 2015.02.10
Posted by kimmayer

2015. 2. 10. 14:05 Programing/JAVA

상속

자바에서도 나오는 상속의 개념

말 그대로 부모 클래스의 객체들을 자식 클래스가 이어 받는다.

 

키워드는 'extends'

 

자바에서는 부모 클래스를 슈퍼클래스, 자식 클래스는 서브 클래스 라고 부른다.

 

class Point {

  int x, y; // 한 점을 구성하는 x, y 좌표

  void set(int x, int y) {

  this.x = x; this.y = y;

  }

  void showPoint() { // 점의 좌표 출력

  System.out.println("(" + x + "," + y + ")");

  }

}

 

public class ColorPoint extends Point {

  // Point를 상속받은 ColorPoint 선언

  String color; // 점의 색

  void setColor(String color) {

  this.color = color;

  }

  void showColorPoint() { // 컬러 점의 좌표 출력

  System.out.print(color);

  showPoint(); // Point 클래스의 showPoint() 호출

  }

  public static void main(String [] args) {

  ColorPoint cp = new ColorPoint();

  cp.set(3,4); // Point 클래스의 set() 메소드 호출

  cp.setColor("red"); // 색 지정

  cp.showColorPoint(); // 컬러 점의 좌표 출력

  }

}

 

  

위의 예제에서는 Point 클래스가 슈퍼 클래스 Colorpoint가 서브 클래스이다.

'Programing > JAVA' 카테고리의 다른 글

다형성 배열을 이용하여 객체를 생성!  (0) 2015.02.10
추상 클래스, 추상 메소드의 개념  (0) 2015.02.10
소수점 자리 출력하기  (0) 2015.02.10
피보나치 수열  (0) 2015.02.10
소켓통신  (0) 2015.02.10
Posted by kimmayer

import java.util.Scanner;

 

 

public class example {

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

int a=0, b=1;

int c;

int input;

input = scanner.nextInt();

for(int i = 0; i<input;i++){

System.out.print(a + " + " + b);

if(i < input-1)

System.out.print(" + ");

c = a+b;

b = b+c;

a = c;

}

}

}

 

별 다른 생각 없이 오랜만에 자바로 간단히 짜본 예제입니다.

'Programing > JAVA' 카테고리의 다른 글

다형성 배열을 이용하여 객체를 생성!  (0) 2015.02.10
추상 클래스, 추상 메소드의 개념  (0) 2015.02.10
소수점 자리 출력하기  (0) 2015.02.10
상속  (0) 2015.02.10
소켓통신  (0) 2015.02.10
Posted by kimmayer

2015. 2. 10. 14:03 Programing/JAVA

소켓통신

서버

package chat;

import java.io.*;

import java.net.*;

//ss 서버소켓 클래스 객체

//ssock 소켓

//sbr 서버 버퍼 리더

//spw 서버 프린트라이터

//reading 서버쪽 리드라인

public class server {

public static void main(String args[]) throws IOException {

 ServerSocket ss = new ServerSocket(1525);

 System.out.println("서버: 클라이언트 접속을 기다립니다");

 

 Socket ssock = ss.accept();

 System.out.println("서버: "+ssock.getInetAddress()+ " 클라이언트와 "+ssock.getLocalPort()+"포트로 연결이 되었습니다.");

 

 BufferedReader sbr = new BufferedReader(new InputStreamReader(ssock.getInputStream()));

 

 PrintWriter spw = new PrintWriter (ssock.getOutputStream(), true);

 String reading = sbr.readLine();

 System.out.println("서버(수신): "+reading);

 spw.println(reading); //서버에서 클라이언트로 받은 메세지 보냄

 System.out.println("서버(송신): "+reading);

 

 spw.close();//출력 스트림

 sbr.close();// 입력스트림

 ssock.close();

 ss.close();

 

   }


}


클라이언트

package chat;

import java.io.*;

import java.net.*;

import java.util.*;


public class Client {

 

 public static String Check(String ch){

  String spam = "123";

  

  if(spam.equals(ch))

  return "스팸입니다";

  else

   return "스팸이 아닙니다";

 }

 

 public static void main(String args[]) throws IOException{

  

  Scanner scanner = new Scanner(System.in);

  String check;

  

  Socket csock = new Socket("127.0.0.1", 1525);

  System.out.println("서버에 연결되었습니다");

  

  String text = scanner.next();

  System.out.println("클라이언트(송신) :"+text);

  PrintWriter cpw = new PrintWriter(csock.getOutputStream(), true);

  check = Check(text);

  System.out.println(check);

  cpw.println(check);

  

  BufferedReader cbr = new BufferedReader(new InputStreamReader(csock.getInputStream()));

  

  String reading = cbr.readLine();

  System.out.println("클라이언트 (수신): "+ reading);

  

  

  cbr.close();

  cpw.close();

  csock.close();

  }

}



http://alecture.blogspot.kr/2011/06/socket-programming.html

강이님의 자바강좌를 토대로 작성했습니다.



'Programing > JAVA' 카테고리의 다른 글

다형성 배열을 이용하여 객체를 생성!  (0) 2015.02.10
추상 클래스, 추상 메소드의 개념  (0) 2015.02.10
소수점 자리 출력하기  (0) 2015.02.10
상속  (0) 2015.02.10
피보나치 수열  (0) 2015.02.10
Posted by kimmayer
이전버튼 1 2 이전버튼

블로그 이미지
IT 기술들 정리, 독후감을 주로 남깁니다!
kimmayer

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.4
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

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함