[kr-dev] 객체지향 입문 - Java(10)

in kr-dev •  7 years ago  (edited)

[kr-dev] 객체지향 입문 - Java(10)


오늘은 다시 객체지향에 대해서 포스팅을 하네요 :)

어제 그제 몸이 너무 안좋아서 

자바 스터디 진행을 못했는데


오늘은 다행히 몸이 괜찮아져 

오랜만에 스터디를 진행했습니다.


근데 자바는 객체지향에 들어서니

난이도가 갑자기 머리 끝까지 올라간 기분이네요 :(

이전에 배운 내용과 비교하면 너무 어려워요 ... 



위의 내용은 어제 설명드리지 못한 부분도 설명되어있습니다.

바로 한 파일(클래스)에는 단 하나만의

public class만이 존재할 수 있다는것입니다 :) 


또한 변수의 종류는 단 한가지만 있는 것이 아니라

클래스 혹은 static이라 불리는 변수와 멤버변수(혹은 필드)

그리고 블록 내에서만 이용됐다가 사라지는 지역변수가 있습니다. 



다음은 어제 설명드리지 못한 생성자입니다.

생성자는 객체를 생성할 때 사용했었죠?

클래스 이름과 같지만 뒤에 ()가 붙은 아이가 생성자입니다 :) 


그리고 그 밑은 동작이라 말씀드렸던

메소드들입니다 :)

메소드 또한 멤버와 마찬가지로 객체를 생성하여

객체.메소드 형식으로 이용이 가능합니다. 


오늘의 예시입니다.

사실 이전과 크게 달라진것은 없습니다.

사실 제 능력이 부족해 여기까지 밖에 스터디를 진행하지 못하였습니다 :(


new연산자와 CarDemo()라는 생성자를 이용해

myCar와 yourCar라는 객체를 만들어 실습해보았습니다.

.(dot)연산자로 변수와 메소드에 접근이 가능하기에


임의대로 속성을 주었습니다.

하지만 CarDemo()라는 생성자는 이미

kind로 중형차라는 속성을 가지고 있네요 :)


물론 kind로도 접근이 가능합니다.

중간에 예시를 보시면 myCar.kind로 접근하여

속성을 중형차에서 소형차로 바꿔보았습니다.



myCar.kind로 접근하여 속성을 소형차로 바꿔주었더니

이후로는 kind의 속성이 모두 소형차로 출력이 되는걸

확인하실 수 있습니다 :)


speed 메소드 같은 경우 지난번에

설명해드린 예시와 같으니 따로

설명하지는 않겠습니다.


오늘은 이전에 말씀드리지 못한 내용들을

보충해보았습니다.

근데 공부하는 입장에서 난이도가 갑자기

확 올라간것 같아 걱정이네요 :(


오늘은 전국 각지에서 고생하시는

개발자분들이 생각나는 밤이네요 ㅠ

kr-dev에서 활동하시는 개발자분들도 화이팅! :)

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

몸이 좋아 졌다니 반갑네요^^

감사합니다 ㅎ 아직도 목에
약간의 염증이 남아있지만
곧 완전히 회복될것 같아요 :)

흑 개념이 없으니 사실 이해가 잘 안 되네요 ㅠㅠ
코딩도 배워보고 싶기는 한데
하고 싶은 일들도 많아서 못하고 있네요 ㅎ

안녕하세요 @rbaggo님 오랜만이네요 :)

저도 사실 개념이 없는 상태에서
시작하는거라 많이 어렵긴하지만

그래도 스팀잇에서 이것저것 뚝딱
만들어내시는 개발자분들을 보며
열심히 배우고 있어요 ㅎ

저도 하고 싶은 일은 많지만
많기만하고 정작 실행하고 있는것들은
거의 없어서 슬퍼요 ㅠ

항상 찾아와주시는데 뜸하게 찾아와서 죄송합니다 ㅠㅠ
번갈아가면서 이웃들을 방문하다 보니ㅜㅜ
저도 저만의 사이트 같은 것을 만들어보고 싶기도 했는데
잘 모르겠네요ㅎㅎㅎ 말만 하고
행동으로 시도를 안 하고 있는 게으름이 있습니다 ㅠ

안녕하세요! 주로 자바 관련 내용을 많이 올리시는 것 같네요! 저도 이제 막 스팀잇 시작해서, 자바스크립트 관련내용 올리고 있습니다. 같이 소통해요 ㅎㅎ 팔로우하겠습니다!

감사합니다 저도 팔로우 하겠습니다 :)
같이 열심히 프로그래밍해봐요 ㅎ

한파일에 하나의 클래스만 있을 수 있는 것은 아닙니다.
중간코드(.class)가 클래스 단위로 만들어지므로 이말이 틀린말은 아니나,
Inner Class 가 있어서 한 파일에 여러개 클래스파일이 들어갈 수 있습니다.

자바 문법은 엄격한 편입니다. 코딩에 제약도 많고 같은 내용을 코딩해도 자바는 LOC 가 큰 편입니다. 이것이 장점이자 단점이기도 하지요.
자바에 푹젖어서 자바의 모든 것을 이해하면 다른 언어를 더 잘 이해할 수도 있을 것이고, 자바를 결코 쓰지 않겠다는 결심을 할 수도 있을 것 같네요...

네 한 파일안에는 여러가지의 클래스 파일이 들어갈 수는 있지만 하나의 클래스 파일은 하나의 public class만을 가질 수 있다고 배웠는데... @kdj님의 말씀은 이러한 public class도 여러개가 존재할 수 있다는 말씀이신가요?

// A.java
class A {
   class sub {
   }
}

소스파일에서는 이런 구조가 가능하고
이를 컴파일 하면 A.class 와 A$sub.class 두개의 클래스 파일이 만들어집니다.
이러한 구조를 Inner class 라고 합니다.

Private 클래스를 만들 필요가 있을까요? 예 그렇습니다.
외부에 알려지기를 원하지 않는 정보를 숨기기 위해서 private 을 사용합니다.
위 소스에서 private class sub 로 선언하면 sub 클래스는 A 안에서만 사용되는 클래스입니다.