[인터돌™] 공부 해보자!! 열심히~~~

반응형

import java.util.*;
import java.io.*;

class 수업내용 {
 public static void main(String [] a) {
  String str = "Hello World";
 
  boolean b = str.equals( "Hello World");
  System.out.println( b );  
 
 
  int len = str.length( );
  System.out.println( len );

  char c = str.charAt(0);
  System.out.println( c );

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

   System.out.print( str.charAt( i ) );

  }
  System.out.println( );


 }
}







/*
package multi.it1401.sbc;
class Pack
{
 String name;

 String getName( ) {
  return name;
 }

 void setName(String name) {
  this.name = name;
 }
}
변수이름 :  classpath
변수값    :  .;c:\packtest

import multi.it1401.sbc.Pack;
class 수업내용 {
 public static void main(String [] a) {
  Pack p = new Pack( );
  p.name = "sbc";
  p.setName("손병찬");
  String name = p.getName (  );
  System.out.println(name);
 }
}
*/

/*
인터페이스
1.  완벽한 추상화이다.
2.  객체 생성이 불가능하다.
3.  인터페이스를 상속하는 하위 클래스를 이용하여 객체를 얻어옴
4.  하위 클래스는 인터페이스에 선언된 모든 메소드를 재정의함
5.  인터페이스에는 추상 메소드만 선언할 수 있다.
     선언되는 메서드는 자동으로 public abstract 가 자동 생성됨
6.  인터페이스에 선언되는 모든 변수는 상수로 쓰인다.
     선언되는 모든 변수는 자동으로 public static final이 생성됨
7.  인터페이스는 다중상속의 개념을 지원한다.
     클래스 extends 클래스
  인터페이스 extends 인터페이스
  클래스 implements 인터페이스
*/
/*
interface Inter1 {
 int m = 100;
 public void print( String str ) ;
}
interface Inter2 extends Inter1{
 int m = 100;
 public void print(  ) ;
}
interface Inter3 extends Inter2{
 int m = 100;
 public void print( int i ) ;
}
interface Inter4 extends Inter2{
 int m = 100;
 void print(int i, String name);
}
class Inter_Sub implements Inter4 {

 public void print(int i, String name) {
  System.out.println( name + "   " + i );  
 }
 public void print( String str ) {
  System.out.println( str );  
 }
 public void print( int i ) {
  System.out.println( i );  
 }
 public void print(  ) {
  System.out.println( "없음" );  
 }
}

class 수업내용 {
 public static void main(String [] a) {
  Inter1 i = new Inter_Sub( );
  i.print("오!!! 제발...");
  System.out.println( i.m );
  System.out.println( Inter1.m );
 }
}
*/









/*
abstract (추상)
1. 객체 생성이 불가능
2. 추상메소드를 가질 수 있다
3. 추상메소드의 형태는 메소드의 선언만 있고 구현부는 없다.
4. 추상클래스를 상속하는 하위 클래스는 반드시 추상클래스의
    추상메소드를 구현(오버라이딩) 하여야 한다.
5. 추상클래스의 객체는 하위 클래스를 이용하여 얻어온다.


*/
/*
abstract class AbstractTest{
 int i = 100;
 int k = 200;

 abstract public void print(int i, String name) ;

 public void print(String name) {
  System.out.println( "상위 : print(String name)" );  
 }
 public void print(int i) {
  System.out.println( "상위 : print(int i)" );  
 }
}
class AbstractSub extends AbstractTest {
 int k = 400;
 int m = 500;

  public void print(int i, String name) {
   System.out.println( "하위 : print(int i, String name)" );  
 }
 public void print(String name) {
  System.out.println( "하위 : print(String name)" );  
 }
 public void print( ) {
  System.out.println( "하위 : print( )" );  
 }
}
class 수업내용 {
 public static void main(String [] a) {
  AbstractTest at = new AbstractSub( );
  at.print(100, "오!!!");
  System.out.println( at.i );
  System.out.println( at.k );
//  System.out.println( at.m );     //==========
//  at.print( );      //==========
  at.print( "제발..." );
  at.print( 100 );
 }
}
*/

/*
=====================================
객체의 형변환
1.  조건 :  상속관계
2.  종류

     -  묵시적 형변환 :   상위 클래스 = 하위 클래스
   AbstractTest at = new AbstractSub( );
 
  - at가 접근할 수 있는 범위
     자신 타입의 클래스 내의 멤버변수와 메소드만을 사용할 수 있다
  단, 하위 클래스에서 오버라이딩된 메소드가 있다면 자신의 것이
  아니라 하위 클래스의 메소드를 사용한다.


  -  명시적 형변환 :   하위 클래스 = ( 하위 객체 )상위 클래스
      AbstractTest at = new AbstractSub( );
                  AbstractSub at = (AbstractSub)at;

      AbstractTest at = new AbstractTest( );
                  AbstractSub at = (AbstractSub)at;
*/

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band