달력

12

« 2019/12 »

  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  

 

 

 

weka.clusterers.SimpleKMeans 명령어 옵션

K-평균(K- MEANS) 군집분석을 수행하기 위한 SimpleKMeans 클래스 실행시 필요한 옵션들입니다.

 

 

옵션

설명

-N

SimpleKMeans 만들 클러스터의 개수를 지정합니다.

-A

사용할 거리(distance) 함수를 지정합니다.

기본값은 유클리디언 거리(EuclideanDistance )이며, (-R first -last) 따라 값의 전체 범위를 사용합니다.

-l

k-means 클러스터를 만들기 위해 반복할 횟수입니다.

-S

난수의 시드(seed)값을 지정합니다.

-t

웨카가 클러스터링하려는 훈련용 파일을 지정합니다.

-p

행에 클러스터 인스턴스의 할당을 보여줍니다. 기능을 사용하려면 행마다 어떤 데이터 속성을 사용할지 웨카에 알려주어야 합니다.

 

플래그

설명

-p 0

번호와 클러스터 식별번호가 표시됩니다.

-p 1

-p 0 결과에 x 위치 값이 함께 표시됩니다.

-p 2

-p 0 결과에 y위치 값이 함께 표시됩니다.

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요


 

 

 

commons-math library

수학과 통계관련 기능을 제공하는 라이브러리 입니다.

 

https://commons.apache.org/proper/commons-math/


 

http://commons.apache.org/proper/commons-math/download_math.cgi


 

 

http://apache.mirror.cdnetworks.com/commons/math/binaries/


 

 

파일을 풀면 API 문서도 확인할 있습니다.


 

 

 

 

 

직접 다운로드

 

commons-math3-3.6.1.jar


commons-math3-3.6.1.z01

commons-math3-3.6.1.z02

commons-math3-3.6.1.zip



'Development > Java' 카테고리의 다른 글

IRIS.ARFF 데이터 셋  (0) 2019.11.17
weka.clusterers.SimpleKMeans 명령어 옵션  (0) 2019.11.16
commons-math library - 수학과 통계관련 기능을 제공하는 라이브러  (0) 2019.11.16
Wrapper클래스 활용  (0) 2019.11.14
SimpleDateFormat  (0) 2019.11.13
WEKA API documentation  (0) 2019.11.10
Posted by codedragon codedragon

댓글을 달아 주세요


 

 

Wrapper클래스 활용

·       기본 자료형을 참조자료형으로 변환할 때(객체로 사용할 때) 사용하는 클래스입니다.

·       대표적으로 제네릭 클래스의 객체 생성시 활용됩니다.

·       래퍼 클래스(Wrapper class)는 산술 연산을 위해 정의된 클래스가 아니므로, 인스턴스에 저장된 값을 변경할 수 없습니다. 단지, 값을 참조하기 위해 새로운 인스턴스를 생성하고, 생성된 인스턴스의 값만을 참조할 수 있습니다.

 

 



'Development > Java' 카테고리의 다른 글

weka.clusterers.SimpleKMeans 명령어 옵션  (0) 2019.11.16
commons-math library - 수학과 통계관련 기능을 제공하는 라이브러  (0) 2019.11.16
Wrapper클래스 활용  (0) 2019.11.14
SimpleDateFormat  (0) 2019.11.13
WEKA API documentation  (0) 2019.11.10
WEKA - arff Dataset  (0) 2019.11.10
Posted by codedragon codedragon

댓글을 달아 주세요

2019. 11. 13. 14:42

SimpleDateFormat Development/Java


 

 

SimpleDateFormat

날짜 표현 형식 설정

 

SimpleDateFormat("yyyy-MM-dd a hh:mm:ss")

 

형식문자

의미

y

M

d

a

AM/PM

H

시간(0~23)

h

시간(1~12)

m

s

 

 

https://docs.oracle.com/javase/10/docs/api/java/text/SimpleDateFormat.html

 



Posted by codedragon codedragon

댓글을 달아 주세요



 

 

WEKA API documentation

http://weka.sourceforge.net/doc.dev/overview-summary.html


 

 


'Development > Java' 카테고리의 다른 글

Wrapper클래스 활용  (0) 2019.11.14
SimpleDateFormat  (0) 2019.11.13
WEKA API documentation  (0) 2019.11.10
WEKA - arff Dataset  (0) 2019.11.10
Hadoop - install for windows (설치 및 설정하기)  (0) 2019.11.10
오버라이딩(Overriding) vs 오버로딩(Overloading)  (0) 2019.11.07
Posted by codedragon codedragon

댓글을 달아 주세요

 

WEKA - arff Dataset

 

airline.arff
0.00MB
breast-cancer.arff
0.03MB
contact-lenses.arff
0.00MB
cpu.arff
0.01MB
cpu.with.vendor.arff
0.01MB
credit-g.arff
0.15MB
diabetes.arff
0.04MB
glass.arff
0.02MB
hypothyroid.arff
0.30MB
ionosphere.arff
0.08MB
iris.2D.arff
0.00MB
iris.arff
0.01MB
labor.arff
0.01MB
ReutersCorn-test.arff
0.49MB
ReutersCorn-train.arff
1.17MB

 

ReutersGrain-test.arff
0.49MB
ReutersGrain-train.arff
1.17MB
segment-challenge.arff
0.19MB
segment-test.arff
0.10MB
soybean.arff
0.19MB
supermarket.arff
1.93MB
unbalanced.arff
0.18MB
vote.arff
0.04MB
weather.nominal.arff
0.00MB
weather.numeric.arff
0.00MB
data.zip
1.60MB

 

Posted by codedragon codedragon

댓글을 달아 주세요


 

Hadoop - install for windows

 

 

 

하둡 설치파일 압축해제

압축 프로그램을 관리자 권한으로 실행합니다.

[Run as administrator]


 

 

다운받은 압축파일을 압축해제합니다.


 

 

[풀기]


 

 

CodeLab 폴더 선택 >> [확인]


 


 

 


 

 

 

 

 

 

환경변수 추가하기

 

환경변수 새로 만들기

변수 이름

HADOOP_HOME

변수

C:\CodeLab\hadoop-3.1.3

 

 


 

PATH 경로 추가하기

변수 이름

PATH

변수

%HADOOP_HOME%\bin

 

 


 

 

 

 

 

 

정상 설치 확인하기

 

hadoop -version

C:\CodeLab>hadoop -version

java version "1.8.0_65"

Java(TM) SE Runtime Environment (build 1.8.0_65-b17)

Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

 

C:\CodeLab>

 

 

 

 

 

 

 

 

HDFS configurations

 

hadoop-env.cmd

hadoop-env.cmd 오픈합니다.

C:\CodeLab\hadoop-3.1.3\etc\hadoop

 


 


 

4개의 라인을 가장 아래에 추가합니다.

set HADOOP_PREFIX=%HADOOP_HOME%

set HADOOP_CONF_DIR=%HADOOP_PREFIX%\etc\hadoop

set YARN_CONF_DIR=%HADOOP_CONF_DIR%

set PATH=%PATH%;%HADOOP_PREFIX%\bin


 

 

 

 

core-site.xml

core-site.xml 오픈합니다.

 

C:\CodeLab\hadoop-3.1.3\etc\hadoop


 

 


 

property 태그를 추가해 줍니다.

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://0.0.0.0:19000</value>

</property>

</configuration>

 

 

 

data 폴더 생성

C:\CodeLab\hadoop-3.1.3 아래에 data 폴더를 생성합니다.

C:\CodeLab\hadoop-3.1.3

 


 

C:\CodeLab\hadoop-3.1.3\data안에 "namenode" 폴더와 "datanode" 폴더를 생성합니다.

C:\CodeLab\hadoop-3.1.3\data

 


 

 

 

 

hdfs-site.xml

hdfs-site.xml 오픈합니다.

C:\CodeLab\hadoop-3.1.3\etc\hadoop


 


 

 

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.name.dir</name>

<value>file:///C:/CodeLab/hadoop-3.1.3/data/namenode</value>

</property>

<property>

<name>dfs.data.dir</name>

<value>file:///C:/CodeLab/hadoop-3.1.3/data/datanode</value>

</property>

</configuration>

 

 


namespace, logs and data files 저장됩니다.

 

 

 

YARN configurations

 

mapred-site.xml

mapred-site.xml파일을 오픈합니다.


 

 


 

 

 

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

 

<property>

<name>mapreduce.jobtracker.address</name>

<value>local</value>

</property>

</configuration>

 


 

 

 

yarn-site.xml

yarn-site.xml파일을 오픈합니다.

 

C:\CodeLab\hadoop-3.1.3\etc\hadoop


 

 

 


 

 

<configuration>

 

<!-- Site specific YARN configuration properties -->

<property>

<name>yarn.server.resourcemanager.address</name>

<value>0.0.0.0:8020</value>

</property>

 

 

<property>

<name>yarn.server.resourcemanager.application.expiry.interval</name>

<value>60000</value>

</property>

 

 

<property>

<name>yarn.server.nodemanager.address</name>

<value>0.0.0.0:45454</value>

</property>

 

 

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

 

 

<property>

<name>yarn.server.nodemanager.remote-app-log-dir</name>

<value>/app-logs</value>

</property>

 

 

<property>

<name>yarn.nodemanager.log-dirs</name>

<value>/dep/logs/userlogs</value>

</property>

 

 

<property>

<name>yarn.server.mapreduce-appmanager.attempt-listener.bindAddress</name>

<value>0.0.0.0</value>

</property>

 

 

<property>

<name>yarn.server.mapreduce-appmanager.client-service.bindAddress</name>

<value>0.0.0.0</value>

</property>

 

 

<property>

<name>yarn.log-aggregation-enable</name>

<value>true</value>

</property>

 

 

<property>

<name>yarn.log-aggregation.retain-seconds</name>

<value>-1</value>

</property>

 

 

<property>

<name>yarn.application.classpath</name>

<value>%HADOOP_CONF_DIR%,%HADOOP_COMMON_HOME%/share/hadoop/common/*,%HADOOP_COMMON_HOME%/share/hadoop/common/lib/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/lib/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/lib/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/lib/*</value>

</property>

 

</configuration>

 

 


 

 

 

 

Initialize environment variables

환경변수를 설정해주는 hadoop-env.cmd 파일이 있는 위치로 이동합니다.

C:\CodeLab\hadoop-3.1.3\etc\hadoop

C:\CodeLab>cd C:\CodeLab\hadoop-3.1.3\etc\hadoop

 

C:\CodeLab\hadoop-3.1.3\etc\hadoop>

 

 

C:\CodeLab\hadoop-3.1.3\etc\hadoop>dir *.cmd

 Volume in drive C has no label.

 Volume Serial Number is CEC6-6B66

 

 Directory of C:\CodeLab\hadoop-3.1.3\etc\hadoop

 

10/27/2019  08:14 PM             4,154 hadoop-env.cmd

09/12/2019  01:11 PM               951 mapred-env.cmd

09/12/2019  01:06 PM             2,250 yarn-env.cmd

               3 File(s)          7,355 bytes

               0 Dir(s)  147,772,735,488 bytes free

 

C:\CodeLab\hadoop-3.1.3\etc\hadoop>

 

 

C:\CodeLab\hadoop-3.1.3\etc\hadoop>hadoop-env.cmd

 

C:\CodeLab\hadoop-3.1.3\etc\hadoop>

 

 

 

Format file system 설정

 

C:\CodeLab\hadoop-3.1.3\etc\hadoop>hadoop namenode -format

DEPRECATED: Use of this script to execute hdfs command is deprecated.

Instead use the hdfs command for it.

2019-10-27 20:46:46,750 WARN util.Shell: Did not find winutils.exe: {}

java.io.FileNotFoundException: Could not locate Hadoop executable: C:\CodeLab\hadoop-3.1.3\bin\winutils.exe -see https://wiki.apache.org/hadoop/WindowsProblems

        at org.apache.hadoop.util.Shell.getQualifiedBinInner(Shell.java:620)

        at org.apache.hadoop.util.Shell.getQualifiedBin(Shell.java:593)

        at org.apache.hadoop.util.Shell.<clinit>(Shell.java:690)

        at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:78)

        at org.apache.hadoop.hdfs.server.common.HdfsServerConstants$RollingUpgradeStartupOption.getAllOptionString(HdfsServerConstants.java:127)

        at org.apache.hadoop.hdfs.server.namenode.NameNode.<clinit>(NameNode.java:324)

2019-10-27 20:46:46,996 INFO namenode.NameNode: STARTUP_MSG:

/************************************************************

STARTUP_MSG: Starting NameNode

STARTUP_MSG:   host = CODEMASTER/xxx.xxx.xxx.xxx

STARTUP_MSG:   args = [-format]

STARTUP_MSG:   version = 3.1.3

STARTUP_MSG:   classpath = C:\CodeLab\hadoop-3.1.3\etc\hadoop;C:\CodeLab\hadoop-3.1.3\share\hadoop\common;C:\CodeLab\hadoop-3.1.3\share\hadoop\common\lib\accessors-smart-1.2.jar;C:\CodeLab\hadoop-3.1.3\share\hadoop\common\lib\animal-sniffer-annotations-1.17.jar;C:\CodeLab\hadoop-3.1.3\share\hadoop\common\lib\asm-5.0.4.jar;C:\CodeLab\hadoop-3.1.3\share\hadoop\common\lib\audience-annotations-0.5.0.jar;C:\CodeLab\hadoop-3.1.3\share\hadoop\common\lib\avro-1.7

 

... 생략

 

STARTUP_MSG:   build = https://gitbox.apache.org/repos/asf/hadoop.git -r ba631c436b806728f8ec2f54ab1e289526c90579; compiled by 'ztang' on 2019-09-12T02:47Z

STARTUP_MSG:   java = 1.8.0_65

************************************************************/

2019-10-27 20:46:47,347 INFO namenode.NameNode: createNameNode [-format]

2019-10-27 20:46:47,779 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

Formatting using clusterid: CID-2a188cb9-4f77-4c04-ba4c-1307eb61d1d5

2019-10-27 20:46:50,687 INFO namenode.FSEditLog: Edit logging is async:true

2019-10-27 20:46:51,052 INFO namenode.FSNamesystem: KeyProvider: null

2019-10-27 20:46:51,054 INFO namenode.FSNamesystem: fsLock is fair: true

2019-10-27 20:46:51,056 INFO namenode.FSNamesystem: Detailed lock hold time metrics enabled: false

2019-10-27 20:46:51,158 INFO namenode.FSNamesystem: fsOwner             = codedragon (auth:SIMPLE)

2019-10-27 20:46:51,159 INFO namenode.FSNamesystem: supergroup          = supergroup

2019-10-27 20:46:51,160 INFO namenode.FSNamesystem: isPermissionEnabled = true

2019-10-27 20:46:51,164 INFO namenode.FSNamesystem: HA Enabled: false

2019-10-27 20:46:51,236 INFO common.Util: dfs.datanode.fileio.profiling.sampling.percentage set to 0. Disabling file IO profiling

2019-10-27 20:46:51,311 INFO blockmanagement.DatanodeManager: dfs.block.invalidate.limit: configured=1000, counted=60, effected=1000

2019-10-27 20:46:51,311 INFO blockmanagement.DatanodeManager: dfs.namenode.datanode.registration.ip-hostname-check=true

2019-10-27 20:46:51,322 INFO blockmanagement.BlockManager: dfs.namenode.startup.delay.block.deletion.sec is set to 000:00:00:00.000

2019-10-27 20:46:51,323 INFO blockmanagement.BlockManager: The block deletion will start around 2019 Oct 27 20:46:51

2019-10-27 20:46:51,340 INFO util.GSet: Computing capacity for map BlocksMap

2019-10-27 20:46:51,340 INFO util.GSet: VM type       = 64-bit

2019-10-27 20:46:51,362 INFO util.GSet: 2.0% max memory 889 MB = 17.8 MB

2019-10-27 20:46:51,362 INFO util.GSet: capacity      = 2^21 = 2097152 entries

2019-10-27 20:46:51,385 INFO blockmanagement.BlockManager: dfs.block.access.token.enable = false

2019-10-27 20:46:51,394 INFO Configuration.deprecation: No unit for dfs.namenode.safemode.extension(30000) assuming MILLISECONDS

2019-10-27 20:46:51,394 INFO blockmanagement.BlockManagerSafeMode: dfs.namenode.safemode.threshold-pct = 0.9990000128746033

2019-10-27 20:46:51,394 INFO blockmanagement.BlockManagerSafeMode: dfs.namenode.safemode.min.datanodes = 0

2019-10-27 20:46:51,395 INFO blockmanagement.BlockManagerSafeMode: dfs.namenode.safemode.extension = 30000

2019-10-27 20:46:51,396 INFO blockmanagement.BlockManager: defaultReplication         = 1

2019-10-27 20:46:51,397 INFO blockmanagement.BlockManager: maxReplication             = 512

2019-10-27 20:46:51,397 INFO blockmanagement.BlockManager: minReplication             = 1

2019-10-27 20:46:51,397 INFO blockmanagement.BlockManager: maxReplicationStreams      = 2

2019-10-27 20:46:51,398 INFO blockmanagement.BlockManager: redundancyRecheckInterval  = 3000ms

2019-10-27 20:46:51,398 INFO blockmanagement.BlockManager: encryptDataTransfer        = false

2019-10-27 20:46:51,398 INFO blockmanagement.BlockManager: maxNumBlocksToLog          = 1000

2019-10-27 20:46:51,457 INFO namenode.FSDirectory: GLOBAL serial map: bits=24 maxEntries=16777215

2019-10-27 20:46:51,497 INFO util.GSet: Computing capacity for map INodeMap

2019-10-27 20:46:51,497 INFO util.GSet: VM type       = 64-bit

2019-10-27 20:46:51,498 INFO util.GSet: 1.0% max memory 889 MB = 8.9 MB

2019-10-27 20:46:51,499 INFO util.GSet: capacity      = 2^20 = 1048576 entries

2019-10-27 20:46:51,501 INFO namenode.FSDirectory: ACLs enabled? false

2019-10-27 20:46:51,501 INFO namenode.FSDirectory: POSIX ACL inheritance enabled? true

2019-10-27 20:46:51,502 INFO namenode.FSDirectory: XAttrs enabled? true

2019-10-27 20:46:51,503 INFO namenode.NameNode: Caching file names occurring more than 10 times

2019-10-27 20:46:51,512 INFO snapshot.SnapshotManager: Loaded config captureOpenFiles: false, skipCaptureAccessTimeOnlyChange: false, snapshotDiffAllowSnapRootDescendant: true, maxSnapshotLimit: 65536

2019-10-27 20:46:51,515 INFO snapshot.SnapshotManager: SkipList is disabled

2019-10-27 20:46:51,542 INFO util.GSet: Computing capacity for map cachedBlocks

2019-10-27 20:46:51,542 INFO util.GSet: VM type       = 64-bit

2019-10-27 20:46:51,543 INFO util.GSet: 0.25% max memory 889 MB = 2.2 MB

2019-10-27 20:46:51,544 INFO util.GSet: capacity      = 2^18 = 262144 entries

2019-10-27 20:46:51,559 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.window.num.buckets = 10

2019-10-27 20:46:51,559 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.num.users = 10

2019-10-27 20:46:51,560 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.windows.minutes = 1,5,25

2019-10-27 20:46:51,564 INFO namenode.FSNamesystem: Retry cache on namenode is enabled

2019-10-27 20:46:51,564 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis

2019-10-27 20:46:51,567 INFO util.GSet: Computing capacity for map NameNodeRetryCache

2019-10-27 20:46:51,567 INFO util.GSet: VM type       = 64-bit

2019-10-27 20:46:51,567 INFO util.GSet: 0.029999999329447746% max memory 889 MB = 273.1 KB

2019-10-27 20:46:51,567 INFO util.GSet: capacity      = 2^15 = 32768 entries

2019-10-27 20:46:51,639 INFO namenode.FSImage: Allocated new BlockPoolId: BP-2118333937-xxx.xxx.xxx.xxx-1572176811632

2019-10-27 20:46:51,752 INFO common.Storage: Storage directory C:\CodeLab\hadoop-3.1.3\data\namenode has been successfully formatted.

2019-10-27 20:46:51,838 INFO namenode.FSImageFormatProtobuf: Saving image file C:\CodeLab\hadoop-3.1.3\data\namenode\current\fsimage.ckpt_0000000000000000000 using no compression

2019-10-27 20:46:51,993 INFO namenode.FSImageFormatProtobuf: Image file C:\CodeLab\hadoop-3.1.3\data\namenode\current\fsimage.ckpt_0000000000000000000 of size 394 bytes saved in 0 seconds .

2019-10-27 20:46:52,190 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0

2019-10-27 20:46:52,230 INFO namenode.FSImage: FSImageSaver clean checkpoint: txid = 0 when meet shutdown.

2019-10-27 20:46:52,230 INFO namenode.NameNode: SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG: Shutting down NameNode at CODEMASTER/xxx.xxx.xxx.xxx

************************************************************/

 

C:\CodeLab\hadoop-3.1.3\etc\hadoop>

HDFS configurations 기반으로한 경로가 보여집니다. (Bold처리)

 

 

 

Start HDFS daemons

 

C:\CodeLab\hadoop-3.1.3\etc\hadoop>%HADOOP_HOME%\sbin\start-dfs.cmd

 

C:\CodeLab\hadoop-3.1.3\etc\hadoop>

 

두개의 명령어 창이 오픈됩니다. namenode datanode 위한 것입니다.


 

[Allow access]


 

 

 

 

 

Start YARN daemons

 

 

 

%HADOOP_HOME%\sbin\start-all.cmd

C:\CodeLab\hadoop-3.1.3\etc\hadoop>%HADOOP_HOME%\sbin\start-all.cmd

This script is Deprecated. Instead use start-dfs.cmd and start-yarn.cmd

starting yarn daemons

 

C:\CodeLab\hadoop-3.1.3\etc\hadoop>

 

 

4개가 구동됩니다.

Hadoop Namenode

Hadoop datanode

YARN Resourc Manager

YARN Node Manager


 

 

Resource manager 오픈

YRAN 웹사이트를 통해 job status 있습니다.

http://localhost:8088


 

 

 

 

설정 파일 다운로드

hadoop-configurations.zip

 





Posted by codedragon codedragon

댓글을 달아 주세요


 

오버라이딩(Overriding) vs 오버로딩(Overloading)

구분

오버라이딩(Overriding)

오버로딩(Overloading)

의미

재정의

다중 정의 중복 정의

적용

상속관계

특정 클래스

설명

부모 클래스에 있던 상속받은 멤버 함수를 다시 정의하는 것

같은 이름의 멤버 함수를 여러 개 정의하는 것

접근제한

·       super클래스의 메소드보다 sub클래스의 메소드 접근제한이 동일하거나 넓어야 합니다.

 

·        

상관없음

리턴형

기본적으로 같아야 합니다.

상관없음

메소드명

super클래스의 메소드명과 sub클래스의 메소드명이 같아야 합니다.

반드시 같아야 합니다.

인자

(타입, 개수)

반드시 같아야 합니다.

반드시 달라야 합니다.

개념

상속받은 기존의 메소드를 재정의하는 것

새로운 메소드를 정의하는 것

함수

speedUp()

speedDown(int)

speedDown(double)

 



Posted by codedragon codedragon

댓글을 달아 주세요


 

오버라이딩(Overriding)

·       오버라이딩은 메서드 재정의라고도 불리며 이는 서로 상속관계로 이루어진 객체들간의 관계에서 비롯됩니다.

·       Inherited methods can be overridden; instance variables cannot be overridden (although they can be redefined in the subclass, but that’s not the same thing, and there’s almost never a need to do it.

 

·       super클래스가 가지고 있는 메서드를 sub클래스에서 똑 같은 것을 새로 만들게 되면 더 이상 super클래스에 있는 이름이 같은 메서드로 호출할 수 없게 됩니다. 이를 오버라이딩 또는 멤버 은폐라고도 합니다.

·       다시 정리하면, 상위 클래스에 정의된 메소드의 이름, 반환형, 매개변수 선언까지 완전히 동일한 메소드하위 클래스에서 다시 정의하는 것으로 하위 클래스에 정의된 메소드에 의해 상위 클래스의 메소드는 가리워집니다.

·       When a method is overridden in a subclass, and that method is invoked on an instance of the subclass, the overridden version of the method is called. (The lowest one wins.)

 

 

·       Overriding just means that a subclass redefines one of its inherited methods when it needs to change or extend the behavior of that method.

 

 

   


   

 

 

재정의된 멤버 함수의 호출 순서

Phoenix p;

p.sleep(); // Animal sleep() 호출

p.sound(); // Bird sound() 호출

p.move(); // Phoenix move() 호출


   

오버라이딩 사용 이유

재사용성

   

   

Posted by codedragon codedragon

댓글을 달아 주세요


 

상속(Inheritance)

·       객체의 특성을 그대로 물려받는 또 다른 객체를 만드는 것을 얘기합니다.

·       특정 클래스(super class)가 가지는 일부 속성과 기능을 다른 새로운 클래스(sub class)에게 제공하기 위해 맺는 클래스들간의 관계입니다.

·       멤버변수, 멤버메소드는 상속되지만 생성자는 상속이 안됩니다.

·       상속을 통해 클래스들을 계층적으로 구성할 수 있는 방법을 제공해 줍니다.

·       상속받은 자식 클래스는 상속을 해준 부모 클래스의 모든 기능을 그대로 사용하거나 자식 클래스는 필요한 기능만을 정의하거나 기존의 기능을 변경할 수 있습니다.

 


 


상속의 목적

상속을 통해 연관된 일련의 클래스에 대한 '공통적인 규약을 정의하고 적용하는 것'이 상속의 실질적인 목적입니다.

 

 

 

클래스의 상속(Inheritance)

·       사전적 의미와 비슷하게 적용되며 한쪽이 다른 한쪽으로 자신의 속성과 메서드 등을 물려주어 사용할 수 있도록 하는 것입니다.

·       부모 클래스의 모든 속성(데이터, 메소드)를 자식 클래스로 물려줍니다.

·       클래스의 공통된 속성을 부모 클래스에 정의하고 하위 클래스에서는 특화된 메소드와 데이터를 정의합니다.

·       실 세계에서는 다중 상속이 가능하지만 JAVA는 클래스들간의 다중 상속을 지원하지 않으며 이를 통해 객체의 명확성을 높였습니다. (자바는 단일 상속만 지원)

·       C#는 파생클래스가 단 하나의 베이스 클래스로부터 상속되어져야 합니다. , 하나의 파생클래스는 2개 이상의 베이스 클래스를 가질 수 없습니다. (단일 상속)

 

 

 

상속관계 용어 정리 (동일 용어)

구분

동일용어

·       상속을하기 위해 준비된 특정 클래스

·       물려 주는 클래스

·       상속을 해주는 쪽

·       Base Class(기본 클래스, 기초클래스, 기반클래스)

·       Super Class(상위클래스, 슈퍼 클래스)

·       Parent Class(부모 클래스)

·       특정 클래스로부터 상속을 받아 새롭게 정의되는 클래스

·       물려 받는 클래스

·       상속을 받는 쪽

·       Derivation Class(유도 클래스, 파생클래스)

·       Sub Class(하위 클래스)

·       Child Class(자식 클래스)

 

 

 

 

 

 


Posted by codedragon codedragon

댓글을 달아 주세요