10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå

Similar documents
PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - 2강

gnu-lee-oop-kor-lec06-3-chap7

JAVA PROGRAMMING 실습 08.다형성

PowerPoint Presentation

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

PowerPoint 프레젠테이션

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Design Issues

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

PowerPoint Presentation

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA PROGRAMMING 실습 02. 표준 입출력

슬라이드 1

1

Microsoft PowerPoint - lec2.ppt

02 C h a p t e r Java

PowerPoint Presentation

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

Network Programming

제11장 프로세스와 쓰레드

PowerPoint Presentation

PowerPoint Presentation

자바 프로그래밍

No Slide Title

쉽게 풀어쓴 C 프로그래밍

PowerPoint Template

Microsoft PowerPoint 장강의노트.ppt

PowerPoint 프레젠테이션

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

Cluster management software

Microsoft PowerPoint - Chapter 6.ppt

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 05. 객체의 활용

Microsoft PowerPoint - Lect04.pptx

JUNIT 실습및발표

PowerPoint Presentation

쉽게

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-2pointer.ppt

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

K&R2 Reference Manual 번역본

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

09-interface.key

Cluster management software

5장.key

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Java ...

Microsoft PowerPoint - CSharp-10-예외처리

4장.문장

Microsoft PowerPoint - Java7.pptx

PowerPoint Presentation

비긴쿡-자바 00앞부속

05-class.key

설계란 무엇인가?

Microsoft PowerPoint - chap03-변수와데이터형.pptx

쉽게 풀어쓴 C 프로그래밍

JAVA PROGRAMMING 실습 09. 예외처리

슬라이드 1

슬라이드 1

슬라이드 1

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

PowerPoint Presentation

03-JAVA Syntax(2).PDF

No Slide Title

C++ Programming

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

Microsoft PowerPoint - 13_UMLCoding(2010).pptx

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

OCW_C언어 기초

JVM 메모리구조

rmi_박준용_final.PDF

슬라이드 1

JAVA PROGRAMMING 실습 02. 표준 입출력

Microsoft PowerPoint - additional06.ppt [호환 모드]

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 07. 상속

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

C++ Programming

교육자료

PowerPoint Presentation

PowerPoint 프레젠테이션

Cluster management software

슬라이드 1

슬라이드 1

Microsoft PowerPoint - C++ 5 .pptx

(Microsoft PowerPoint - java2-lecture3.ppt [\310\243\310\257 \270\360\265\345])

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Transcription:

기초통계프로그래밍 클래스, 객체, 변수, 메소드 hmkang@hallym.ac.kr 금융정보통계학과 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 1 / 26

자바구성파일 소스파일 소스파일 : 사용자가직접에디터에입력하는파일로자바프로그램언어가제공하는형식으로제작 소스파일의확장자는.java 임 컴파일 : javac 명령어를이용하여프로그래머가만든소스파일을컴파일하여실행파일.class 파일로만듬 컴파일방법 : javac Hello.java( 소스파일이 Hello.java 일때 ) 실행파일 파일실행 : 가바가상머신 (JVM) java 로.class 파일을실행 실행방법 : java Hello ( 실행파일이 Hello.class 일때 ) 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 2 / 26

클래스 (class) 의구성 packages import class{ variables; method(parameter){ variables; 명령문들 ; 용어 package : 동일한범주 (category) 에있는클래스를모아놓은폴더 import : 클래스에서객체를생성하기위하여해당클래스가존재하는 package 의경로 (path) 를열어줌 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 3 / 26

변수 변수는기초자료형이나참조자료형으로만들수있음 변수의선언은 data type identifier 로하며동시에 identifier 에값을넣을수있음 변수를선언하는예는 int i; 또는 int i=0; identifier 는식별자로 keyword 는사용할수없음 identifier 는한글을사용해도가능 identifier 는첫문자는항상문자를사용해야함 identifier 는밑줄 ( ), 달러 ($) 를제외한특수문자를사용할수없음 identifier 는클래스명이나메소드명을사용할때도동일하게적용 식별자를올바르게사용한예는 i, j, x, y, y2003, my index 등이있음 식별자를잘못사용한예는 x#y, 12abc 등이있음 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 4 / 26

데이터형태 기초자료형과참조자료형 기초자료형과참조자료형 자료형 keyword 크기 기본값 범위 논리형 boolean 1bit false true, false 문자형 char 2byte \u0000 0 2 16 1 byte 1byte 0 2 7 2 7 1 정수형 short 2byte 0 2 15 2 15 1 int 4byte 0 2 31 2 31 1 long 8byte 0 2 63 2 63 1 실수형 float 4byte 0.0 3.438 3.4 38 1 double 8byte 0.0 1.7 308 1.7 308 1 참조형 class 사용예 클래스명 Random 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 5 / 26

변수 변수 변수생성위치에따라전역변수 (global variable) : 클래스전역에서사용되는변수 ( 자동으로초기화 ) 지역변수 (local variable) : 메소드안에서만사용할수있는변수 ( 초기화하지않으면오류발생 ) 메모리생성위치에따라클래스변수 (class variable) : 변수가메모리에있기대문에별도로객체를생성하여사용하지않아도됨 (static keyword) 인스턴스변수 (instance variable) : 별도로객체를생성하여사용하는변수 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 6 / 26

변수 변수사용예 public class MyVairable { int i; static int j; public static void amethod(){ int k; static int l; public void bmethod(){ int m; int n; 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 7 / 26

변수 키워드 (keyworld) 키워드는식별자로사용할수없으며그종류는다음과같다. 소스파일 import package 클래스, 인터페이스 class interface new 데이터형 boolean byte char double float int long short void 데이터값 false null true 상속 extends implements 생성자 super this 연산자 instanceof 제한자 private protected public abstract final native static synchronized 제어문 break case continue default do else for if return switch while 예외처리 catch finally throw throws try 기타 transient volatile goto const strictfp 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 8 / 26

클래스 (class) 의구성 package mypackage; import java.awt.graphics public class MyClass { int i; static int j; public static void main(string arg[]){ i=10; System.out.println(j+i); int rect(int w, int h){ int area = w * h ; System.out.println( 면적은 : + area + 이다. ); return area; 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 9 / 26

메소드 메소드 (method) 의구성 [modifier] [static] return method(parameter) { variable; 명령문들 ; 함수를사용하려면반드시리턴형, 메소드명, 전달인자가필요하다. 메소드 (method) 호출 ( 실행 ) 이미만들어진메소드를사용하려면다음과같이 method(parameter); 로메소드명과전달인자만사용한다. 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 10 / 26

메소드 용어 메소드안에서선언된변수들은지역변수들로메소드밖에서는적용되지않음 modifier : 식별자로그종류는 public, private, protected, 없음 static : static 은 static 변수만사용가능, 없음 (non-static) 은인스턴스변수만사용가능 return : 함수결과를되돌려주는값으로기초자료형과객체자료형을사용함 method : 메소드명으로식별자 (identifier) 를만드는규칙에적용 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 11 / 26

메소드 메소드실행규칙 메소드는리턴형이있으면변수나또다른것이그값을받아주어야되고리턴형이없으면실행만하면됨 static 메소드안에서는다른곳에선언된 static 변수나 static 메소드만사용할수있음. 인스턴스메소드안에서는다른곳에선언된인스턴스변수나인스턴스메소드만사용할수있음. static 메소드안에서인스턴스메소드나변수를사용하려면 new 키워드를사용하여객체를생성하면가능함. 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 12 / 26

메소드 (method) 에서변수값접근 public class MyClass { int num1; static int num2; static void amethod(int w, int h){ // static 메소드 - 리턴형은없음 int num3; // 변수명은선언하고초기화하지않음 num1 = 3; //static 메소드에서는인스턴스변수를사용할수없음 num2 = 3; // 정상적으로값이저장됨 static int num4; // 메소드안에서 static 키워드사용하지않음 System.out.println(num3); // 초기화하지않은지역변수는에러발생 void bmethod(int w, int h){ // 인스턴스메소드 - 리턴형없음 int num5=3; // 변수명선언과초기화를동시에함 num1 = 3; // 정상적으로값이저장됨 num2 = 3; // 인스턴스메소드에서는 static 변수를사용할수없음 static int num6; // 메소드안에서 static 키워드사용하지않음 System.out.println(num6); // 초기화하였으므로정상적으로실행됨 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 13 / 26

메소드 (method) 실행 public class MyClass { public static void main(string arg[]){ //static 메소드에서메소드실행방법 int num1, num2 num1 = amethod(2,3); // static 메소드직접실행 - 리턴형이있음 cmethod(2,3);// static 메소드직접실행 - 리턴형없음 MyClass mc = new MyClass(); // 인스턴스객체선언 num2 = mc.bmethod(2,3); // 인스턴스메소스실행 - 리턴형있음 mc.dmethod(2,3); // 인스턴스메소드실행 - 리턴형없음 static int amethod(int w, int h){ // static 메소드 - 리턴형은 int return w*h; int bmethod(int w, int h){ // 인스턴스메소드 - 리턴형 int return w*h; static void cmethod(int w, int h){ // static 메소드 - 리턴형은없음 System.out.println( 면적은 : + w*h + 이고리턴값없음 ); void dmethod(int w, int h){ // 인스턴스메소드 - 리턴형은없음 System.out.println( 면적은 : + w*h + 이고리턴값없음 ); 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 14 / 26

기초생성자 (constructor) 클래스안에서객체를만드는메소드 생성자이름은클래스명과동일해야함 생성자에는 return 을사용할수없음 한클래스에여러개의생성자를만들수있음 ( 다중생성자 ) 다중생성자 (multiple constructor) 한클래스안에둘이상의생성자 생성자의구분은인수의자료형태가다르거나인수의개수의차이로함 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 15 / 26

기초생성자 (constructor) public class MyClass { MyClass(){ System.out.println( 기초생성자 ); void amethod(){ System.out.println( 안녕하세요 ); 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 16 / 26

다중생성자 (multiple constructor) public class MyClass { MyClass(){ System.out.println( 첫번째기초생성자 ); MyClass(String who){ System.out.println( 두번째기초생성자 + who + 님 ); 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 17 / 26

보기 : 아래의조건에대한클래스만들기 클래스명을 Person 으로한다. 전역변수 String name, int age 를만든다. 생성자메소드를만든다. 인수는 String, int 두개이다. 생성자메소드에서는두전역변수의값을변경할수있도록한다. 인수가없는생성자메소드를만든다. name= 모름, age=0 을입력. printperson 메소드를만든다. 리턴형과인수모두없다. printperson 메소드에서 안녕하세요내이름은 + name + 이군요. 와 내나이는 + age + 입니다. 가출력되도록작성 main 메소드에 Person 클래스에대한객체를두개생성한다. 한객체는내이름과나이를또다른객체에는옆사람이름과나이에대한객체를생성한다. 두개의객체에서 printperson 메소드를호출한다. 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 18 / 26

보기 : 사각형면적구하기 클래스명을 RectangleArea 로한다. 전역변수 int area 를만든다. 생성자메소드를세개만든다. 첫번째생성자메소드는가로길이, 세로길이를입력할수있고. 두번째생성자메소드는사각형의꼭지점좌표 4 개를입력할수있으며 세번째생성자메소드는대각선의메소드를입력할수있도록한다. printarea 메소드에서 사각형면적은 area 입니다 가출력되도록작성 네좌표는 (x i, y i ) = (0, 0), (5, 0), (0, 4), (5, 4) 이다. main 메소드에클래스에대한객체를세개생성한다. 각객체에서 printarea() 메소드를호출한다. 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 19 / 26

객체만들기객체 (object) 는클래스에서참조형변수를만드는것객체는 new 키워드를사용하여생성객체는기초생성자에따라입력값의형태가다름형식클래스명참조형변수 = new 클래스명 (); 예1 CircleArea ca1 = new CircleArea(); 예2 CircleArea ca2 = new CircleArea(1,2); 예3 CircleArea ca3;; ca3 = new CircleArea(1,2,3,4); 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 20 / 26

상속 (extend) 상속은다른클래스의모든기능을사용하는가능으로 extends 키워드사용 상속은상속한클래스는별도로객체를생성하지않아도됨 상속받는것은반드시한클래스만가능 상속한클래스의자원을사용하기위하여 super 키워드사용 현재클래스의자원을사용하기위하여 this 키워드사용 상속 (extend) public class MyClass { public static void main(string arg[]){ System.out.println( 안녕하세요 ); int amethod(int w, int h){ System.out.println( 면적은 : + w*h + 이다. ); return w*h; void bmethod(int w, int h){ System.out.println( 면적은 : + w*h + 이고리턴값없음 ); 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 21 / 26

메소드오버라이딩 (overriding) 과하이딩 (hiding) overriding : 상속관계에있는두클래스에서동일한인스턴스메소드로선언 hiding : 상속관계에있는두클래스에서동일한클래스 (static) 메소드로선언 상속관계에있는두클래스에서메소드가오버라이딩또는하이딩하려면 각클래스에서같은메소드명 각클래스에서메소드의파라미터 (parameter) 개수와데이터형이동일 각클래스에서메소드의리턴형이동일 각클래스에서두메소드가모수클래스 (static) 메소드인지아닌지 를모두만족해야한다. 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 22 / 26

메소드오버라이딩 (overriding) 과하이딩 (hiding) 예 public class Animal2{ public static void hide() { System.out.println( The hide method in Animal2. ); public void override() { System.out.println( The override method in Animal2. ); public class Cat extends Animal2 { public static void hide() { System.out.println( The hide method in Cat. ); System.out.println( The override method in Cat. ); public static void main(string[] args) { Cat mycat = new Cat(); myanimal.hide(); myanimal.override(); 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 23 / 26

메소드오버로딩 (overloading) 같은클래스내에동일한메소드가두개이상존재이름이같은메소드가동일한클래스에존재메소드의파라미터의개수가다르거나데이터형이다름리턴형은상관없음 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 24 / 26

접근제한자 (access modifier) 표 : 접근제어범위 클래스인경우 public friendly 같은패키지 가능 가능 다른패키지 가능 불가능 변수와메소드인경우 public protected friendly private 같은클래스 가능 가능 가능 가능 같은패키지 가능 가능 가능 불가능 상속받은클래스 가능 가능 불가능 불가능 다른패키지 가능 불가능 불가능 불가능 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 25 / 26

abstract 제한자 해당클래스는선언부에 abstract 제한자를사용해야하고 해당메소드는프로토타입 ( 메소드형 ) 만정의하고메소드내용 ({) 을사용할수없고 abstract 메소드가포함된클래스를상속할경우 abstract 제한자로선언된메소드는모두재정의 (override) 해야만한다. final 제한자 클래스, 메소드, 변수의선언문에사용 클래스선언문에사용하면클래스를상속받아사용할수없고 (abstract 와반대 ) 메소드선언부에사용하면하위클래스에서재정의할수없으며 변수선언부에사용하면그값을변경할수없다. 강희모 ( 금융정보통계학과 ) 기초통계프로그래밍 26 / 26