본문 바로가기

전체 글

배열 기반의 문자열 표현 [배열기반의 문자열 표현] #define _CRT_SECURE_NO_WARNINGS #include int main(void) { char str[50]; int idx = 0; printf("문자열 입력 : "); scanf("%s", str); printf("입력 받은 문자열 : %s\n", str); printf("문자 단위 출력 : "); while (str[idx] != '\0') { printf("%c", str[idx]); idx++; } printf("\n"); return 0; } 위의 코드를 실행할 때 문자열 Hello World!를 입력하면 위와 같이 Hello까지만 입력받을 수 있다. 왜 공백 문자 뒤에 있는 World!는 입력받지 못하는 것일까? Hello 바로 뒤에는 공백문자(널.. 더보기
Super _15_Super 필요성과 사용법을 단계별로 코드를 수정해가며 확인해보자. [가 정] 공장 카메라에서는 동영상을 녹화함과 동시에 화재 감지 기능이 실행되고 과속 단속 카메라에서는 사진 촬영과 동시에 속도 측정과 번호판 인식 기능이 실행된다고 가정하자. [단계 1] 1. Camera.class package chap_07.camera; public class Camera { // 부모 클래스 public String name; public Camera() { // 생성자 this.name = "카메라"; } public void takePicture(){ // 사진 촬영 System.out.println(this.name + " : 사진을 촬영합니다."); } public void recordVideo().. 더보기
다형성 _14_Polymorphism (다형성) https://ruhaharu1107.tistory.com/14 메소드 오버라이딩 _13_MethodOverriding ( 메소드 오버라이딩) 메소드 오버라이딩 자식 클래스에서 부모 클래스에 있는 메소드를 덮어쓴다.(재정의) 같은 이름의 메소드임에도 불구하고 객체마다 다른 기능을 하게 된다 ruhaharu1107.tistory.com 카메라 패키지안에 있는 세 가지 클래스(Camera.class, FactoryCam.class, SpeedCam.class)는 위의 포스팅과 동일하다. class Person : 사람 class Student extends Person : 학생 (학생은 사람이다. Student is a person) class Teacher exte.. 더보기
메소드 오버라이딩 _13_MethodOverriding ( 메소드 오버라이딩) 메소드 오버라이딩 자식 클래스에서 부모 클래스에 있는 메소드를 덮어쓴다.(재정의) 같은 이름의 메소드임에도 불구하고 객체마다 다른 기능을 하게 된다. 1. 부모 클래스(Camera) package chap_07.camera; public class Camera { // 부모 클래스 public String name; public Camera() { // 생성자 this.name = "카메라"; } public void takePicture(){ // 사진 촬영 System.out.println(this.name + " : 사진을 촬영합니다."); } public void recordVideo(){ // 동영상 녹화 System.out.print.. 더보기
상속 1. Camera.class ( 부모클래스에 해당 ) package chap_07.camera; public class Camera { // 부모 클래스 public String name; public Camera() { // 생성자 this.name = "카메라"; } public void takePicture(){ // 사진 촬영 System.out.println(this.name + " : 사진을 촬영합니다."); } public void recordVideo(){ // 동영상 녹화 System.out.println(this.name + " : 동영상을 녹화합니다."); } } 2. FactoryCam.class (자식 클래스) package chap_07.camera; public class Fa.. 더보기
패키지 _11_Package package chap_07; import java.util.Random; public class _11_Package { public static void main(String[] args) { // 패키지 // 자바 클래스들을 비슷한 것들끼리 정리하는 폴더 구조. // 랜덤 클래스 사용해보자. Random random=new Random(); System.out.println("랜덤 정수 : "+random.nextInt()); // int의 범위 내에서 정수형 값 반환 System.out.println("랜덤 정수 (범위) : "+random.nextInt(10)); // 0이상 10 미만의 정수형 System.out.println("랜덤 실수 : "+random.nextDou.. 더보기
생성자 _08_Constructor ( 생성자 ) 1. 기본 생성자 호출 package chap_07; public class _08_Constructor { public static void main(String[] args) { // 생성자 : 객체가 만들어질 때 자동으로 호출되는 메소드 BlackBox b1=new BlackBox(); } } package chap_07; public class BlackBox { String modelName; // 모델명 String resolution; // 해상도 int price; // 가격 String color; // 색상 static boolean canAutoReport=false; // 자동 신고 기능 BlackBox(){ System.out.printl.. 더보기
this _07_this package chap_07; public class _07_This { public static void main(String[] args) { BlackBox b1=new BlackBox(); // 기존의 "까망이"에서 "까망이(최신형)"으로 모델명 업데이트 b1.modelName="까망이"; b1.appendModelName("(최신형)"); } } void appendModelName(String modelName) { this.modelName += modelName; } // 클래스가 가진 인스턴스 변수인 modelName임을 명시하고 싶으면 // this.modelName 이라고 쓴다. // 우측은 파라미터로 전달받은 modelName이다. // 인스턴스 변수와 전달받은 파라.. 더보기