Programming/C++ STL2014. 3. 12. 17:28
cpp에서 제공하는 디폴트 매개변수는 가변인자와 묘하게 섞여있는 느낌이다.

void test(int a = 1, int b = 2, int c = 3);

test();
test(1);
test(1,2);
test(1,2,3); 

인자 갯수보다 적게 입력이 가능하면서
생략된 인자에 대해서는 기본값으로 초기화를 수행한다.

[링크 : http://printf.egloos.com/1770599]

'Programming > C++ STL' 카테고리의 다른 글

cpp class에서 변수값을 미리 선언 못하는 이유  (0) 2014.03.15
cpp 와 java의 차이점(문법)  (0) 2014.03.14
c -> cpp 추가사항  (0) 2014.03.10
오버로딩 / 오버라이딩  (0) 2014.03.10
try - throw - catch  (0) 2014.03.05
Posted by 구차니
Programming/Java2014. 3. 11. 20:32
배열은 기존의 for(초기화;조건문;증감문) 식이 아닌
for(변수형:변수 리스트) 식으로 for-each를 통해 간편하게 구현을 할 수 있게 되어 있다.
public void argTest(String... n)
{
//for (int i = 0; i < n.length; i++)
// System.out.println("n[" + i + "]:" + n[i]);
for(String i: n)
System.out.println(i);

System.out.println("-------------------------------");
}

그리고 c에서는 인자를 ... 를 통해서 가변인자를 지원하나
Java는 1.5 부터(JDK 5) varargs를 지원하게 되었다

단, java에서는 ... 내에서는 동일 형에 대해서 만 지원한다.
public void argTest(String... n)

vt.argTest("Varargs", "Test");
vt.argTest("100", "600", "900", "1000");
vt.argTest();

C언어 스타일로 사용하려면 하나의 변수를 고정하고 그 이후에 대해서 ... 처리 하면 되지만
public void argTest(int s, String... n)

vt.argTest(1);
vt.argTest(1,"100");

C언어처럼 ... 이후에는 다른 변수를 추가할 수는 없다.(즉, 다른 형에 대해서는 연속적으로 입력 불가능)
public void argTest(int s, String... n, double e)
Error : The variable argument type String of the method argTest must be the last parameter 

for-each나 ...(varargs)는 autoboxing을 통해 구현되는 것으로 보인다.

[링크 : http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html] for
[링크 : http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html] for - each
[링크 : http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html]
    [링크 : http://docs.oracle.com/javase/1.5.0/docs/guide/language/autoboxing.html]
    [링크 : http://docs.oracle.com/javase/tutorial/java/data/autoboxing.html]

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

java bytecode decompiler - javap  (0) 2014.03.12
java static initialize  (0) 2014.03.12
JUnit 사용 예  (0) 2014.03.11
java class default access modifier  (0) 2014.03.11
*.java 파일 하나에 여러개의 class 생성  (0) 2014.03.11
Posted by 구차니
Programming/Java2014. 3. 11. 18:00
New - JUnit Test Case로 Junit 생성


귀찮으니.. 걍 기본 값으로 설정


클래스내의 테스트할 메소드를 선택


처음 생성해서인지 JUnit build path 추가 해야 한다고 알려주니 OK


Test.java와 JUnit 4가 추가 된 Package Explorer의 모습


자동 생성된 Junit용 MP3pTest.java 파일
import static org.junit.Assert.*;
import org.junit.Test;

public class MP3pTest {

@Test
public void testMemoryUp()
{
fail("Not yet implemented");
}

@Test
public void testSetColor()
{
fail("Not yet implemented");
}
} 

이후에는 테스트용 내용을 채워 넣으면 간단하게 끝인... 듯?
난 안착하니까 걍 실행해보니 Failuer 2건 ㅋㅋㅋ


[링크 : http://computtee.tistory.com/65]

Posted by 구차니
Programming/Java2014. 3. 11. 17:07
java에서 class 에 접근제한을 하지 않고 (ex. public class) 생성시에는
동일 패키지에 대해서만 접근이 가능하도록 생성이 된다.

[링크 : http://stackoverflow.com/questions/16164902/what-is-the-default-access-modifier-in-java]

 A class may be declared with the modifier public, in which case that class is visible to all classes everywhere. If a class has no modifier (the default, also known as package-private), it is visible only within its own package (packages are named groups of related classes — you will learn about them in a later lesson.)
 

[링크 : http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html


public > protected > default > private
public - 전부 허용
protected - 동일 패키지, 상속관계시 허용
default - 동일 패키지, 전부 허용
private - 현재 class / object만 허용

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

java 1.5 이후 추가 for-each / varargs(autoboxing)  (0) 2014.03.11
JUnit 사용 예  (0) 2014.03.11
*.java 파일 하나에 여러개의 class 생성  (0) 2014.03.11
java 명령어 줄 인수  (0) 2014.03.10
java break / continue  (0) 2014.03.10
Posted by 구차니
Programming/Java2014. 3. 11. 17:01
하나의 파일에 여러개의 class를 추가할수 있으나
파일명과 동일한 클래스는 반드시 public 이어야 한다.
그리고 동일 파일내에 다른 클래스들 역시 독립된 *.class 파일로 생성된다.

[링크 : https://kldp.org/node/69225]
[링크 : http://k.daum.net/qna/view.html?qid=3fqBg]

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

JUnit 사용 예  (0) 2014.03.11
java class default access modifier  (0) 2014.03.11
java 명령어 줄 인수  (0) 2014.03.10
java break / continue  (0) 2014.03.10
java와 cpp의 차이점 - 연산자 오버로딩 / 다중상속  (0) 2014.03.10
Posted by 구차니
Programming/C Win32 MFC2014. 3. 11. 16:30
gcc의 확장 기능으로
형의 종류를 알려준다고 하는데.. c++용인지 c용인지 모르겠다 -_-

[링크 : http://stackoverflow.com/questions/12081502/typeof-operator-in-c]
[링크 : http://codecat.tistory.com/entry/GCC-typeof]

If you are writing a header file that must work when included in ISO C programs, write __typeof__ instead of typeof.

[링크 : http://gcc.gnu.org/onlinedocs/gcc/Typeof.html
[링크 : http://en.wikipedia.org/wiki/Typeof]
[링크 : http://en.wikipedia.org/wiki/Typeid]

'Programming > C Win32 MFC' 카테고리의 다른 글

순열생성관련  (0) 2014.06.27
2중 포인터 사용이유  (0) 2014.03.19
const / pointer  (0) 2014.02.25
assert()  (0) 2013.12.18
printf의 %s와 %S  (0) 2013.06.15
Posted by 구차니
Programming/Java2014. 3. 10. 17:09
java는 파일명이 클래스명과 동일해야 하므로
c와 같이 인자 0번이 실행된 파일의 이름이 아니라 첫번째 인자가 들어온다.

public class test {

public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(args.length);
for(int i = 0; i < args.length;i++)
System.out.println(args[i]);
}
}

일반적으로 많이 쓰일 문자열 인자를 숫자로 바꾸어주는 parse 관련 클래스/메소드들
Char 클래스는 존재하지 않나? 
Double.parseDouble();
Float.parseFloat();
Boolean.parseBoolean();
Byte.parseByte();
Short.parseShort();
Integer.parseInt(s);
Long.parseLong(); 

[링크 : http://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html]
Posted by 구차니
Programming/Java2014. 3. 10. 16:32
java에서는 goto가 없지만 break와 continue에 label을 지원한다.
[링크 : http://stackoverflow.com/questions/2545103/is-there-a-goto-statement-in-java]

 The break statement terminates the labeled statement; it does not transfer the flow of control to the label. Control flow is transferred to the statement immediately following the labeled (terminated) statement.

[링크 : http://stackoverflow.com/questions/14960419/is-using-a-labeled-break-a-good-practice-in-java

단, 반복문과 라벨 사이에는 어떠한 문장도 들어가서는 안되며 무언가가 삽입되었을 시에는
"The label -label name- is missing"이라는 에러가 발생된다.


[링크 : http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html]
Posted by 구차니
Programming/Java2014. 3. 10. 13:10
연산자 오버로딩 / 다중 상속을
cpp는  허용
자바는 허용하지 않는다.


다중상속의 경우 다중상속시 상속했던 클래스들을 모두 알아야 하기에 정보 은닉 및 캡슐화에 치명적이고
(결국 볼게 더 많아진 c 일뿐 유지 보수 측면에서)

연산자 오버로딩은 변형이 심하게 될 경우 파악해야할 부분이 많이 늘어나기에 가독성이 떨어져서 이래저래 빼버린듯 하다.
(극단적으로 클래스에 대한 operator[] 를 전혀 다르게 정의해서 사용한다면
배열로 사용할 수 없지만 해석하는 사람으로서는 혼동할 수 밖에 없다.)

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

java 명령어 줄 인수  (0) 2014.03.10
java break / continue  (0) 2014.03.10
java explicit upcasting 묵시적 형변환  (0) 2014.03.07
java byte 형의 오묘함  (0) 2014.03.07
java primitive data type + 연산자  (0) 2014.03.07
Posted by 구차니
Programming/C++ STL2014. 3. 10. 13:00
변수형
bool - true / false

함수 확장
class - class / friend / virtual / overriding
template - template / overloading

상속/객체
const 키워드 확장 (컴파일러 레벨에서의 함수내 값변경 방지)
static 키워드 확장 (java의 private?)

포인터 확장
this
& (reference) 

예외처리
try
catch
throw 


constructor (create triggered action) / destructor (remove triggered action) 를 통해 자동화를 지원
기존의 static 을 통한 파일 단위의 접근 제어에서 클래스 단위 접근 제어 확장
try-catch-throw를 통한 goto 문의 사형선언
overloading과 template을 통한 개발의 용의함(overloading을 통한 타입의 identifier화) 

이런게 c와 cpp을 구분짓는 가장 큰 요소인것 같다. 

'Programming > C++ STL' 카테고리의 다른 글

cpp 와 java의 차이점(문법)  (0) 2014.03.14
cpp 디폴트 매개변수  (0) 2014.03.12
오버로딩 / 오버라이딩  (0) 2014.03.10
try - throw - catch  (0) 2014.03.05
연산자 오버로딩  (0) 2014.03.04
Posted by 구차니