Java(자바) 11日次

블로그 移轉·2022년 11월 7일

Java

목록 보기
10/20

Java 面接 族譜 整理 (11日次)

1. this와 this生成子에 對하여 說明하시오。

this(); → this(); 生成子函數

  • 生成子의 오버로딩(多重定義) & this(); 生成子

  • 生成子에서 重複된 코드를 줄이기 爲해 또 다른 生成子를 呼出할 때 使用하는 것

  • 生成子函數 → this生成子라고 表現

  • 例示

    class Person {
    	private int regiNum;	// 住民登錄番號
    	private int passNum;	// 旅券番號
    
    	Person(int rnum, int pnum) {	// 生成子函數
    		regiNum = rnum;
    		passNum = pnum;
    	}
    
     Person(int rnum) {	// 오버로딩
    //	regiNum = rnum;   // 元來 코드
    //	passNum = 0;
    
    		this(rnum, 0);    // 어떤 函數를 呼出한걸까? 
    	}
    /*
    위에 있는 生成子函數를 呼出한 것이다。(可能한 것은 그거밖에 없음)
    → rnum과 0을 因子로 받는 오버로딩 된 他 生成子 呼出 (重複된 코드를 줄이는 效果!)
    */
    ...
    	}	
    }

this.

  • 키워드 this를 利用한 인스턴스變數의 接近、客體生成했을 때의 自己自身을 나타낸다。
  • 인스턴스變數 自己自身과 媒介變數(파라미터)로 들어오는 變數名이 同一할 境遇에 區分을 爲해서 使用한다。(이 用途 以上으로는 使用되지 않는다。)

2. 下段의 內容을 프로그래밍 하시오。

"Hello.java" 文字列에서 파일名과 擴張子인 java를 分離시키는 프로그램을 作成하시오。

  • 入力 → Hello.java
  • 出力 → 파일名은 Hello이며 擴張子는 java입니다。
import java.util.Scanner;

class SeparateFileName {
	private String input;
	private int dot;
	private int length;
	private String fileName, extention;

	public SeparateFileName() {

	}

	public SeparateFileName(String input) {
		this.input = input;
	}

	public String getInput() {
		return input;
	}

	public void setInput(String input) {
		this.input = input;
	}

	private void inputFileName() {
		System.out.println("파일名을 入力하세요。(파일名.擴張子)");
		Scanner sc = new Scanner(System.in);
		input = sc.nextLine();
		sc.close();
	}

	private void fileLength() {
		length = input.length();
	}

	private void whereIsDot() {
		for (int i = 0; i < input.length(); i++) {
			if (input.charAt(i) == '.') {
				dot = i;
			}
		}
	}

	private void separate() {
		fileName = input.substring(0, dot);
		extention = input.substring(dot + 1, length);
	}

	private void seperatePrint() {
		System.out.println("파일名은 " + fileName + "이며 擴張子는 " + extention + "입니다。");
	}

	public void fileNameSeperation() {
		inputFileName();
		fileLength();
		whereIsDot();
		separate();
		seperatePrint();
	}
}

public class FileNameMain {

	public static void main(String[] args) {
		SeparateFileName checkFile = new SeparateFileName();
		checkFile.fileNameSeperation();
	}
}

3. 相續(繼承)을 UML로 表記해 보시오。

  • 相續(繼承)關係圖

4. 父母클래스와 子息클래스의 他 用語들은?

父母클래스는 「上位클래스」 또는 「수퍼클래스」 라고 하고、
子息클래스는 「下位클래스」 또는 「서브클래스」 라고 한다。

5. 2次元配列의 default初期化 方法은?

2次元配列 宣言

int[][] array;	// 正
int [][]array;	// 不
int array[][];	// 不

1次元配列 生成時와는 다르게 第一 위의 方法으로만 文法的誤謬없이 正常的으로 2次元配列을 宣言할 수 있다。

2次元配列의 初期化

int[][] array;	// 2次元配列의 宣言

array = new int[1][5];	// 2次元配列의 初期化

2次元配列의 宣言과 初期化를 同時에 하는 方法

int[][] array = new int[1][5];	// 配列의 宣言과 初期化를 한 番에

6. enhenced for文에 對하여 說明하시오。

  • Java 5.0以上부터 支援하는 for文이다。
profile
移轉했읍니다。

0개의 댓글