자바의 특징

자바

16진수 : 0x~~
8진수 : 0~~      -> 다른언어도 그런가?

문자는 작은 따옴표로 표현한다.
( char ch1 = '한'        -(변환)-> char ch1=54620 )

ppt 자바 특징 : 
1) 심시티 처름 도로 세울때 나중에 클때를 생각해서 짓는것 처럼 
자바도 처음에는 초반에는 필요없는 부분 까지 컨트롤 해주어야 하지만 나중에 편하니깐!!
2) 모든 상수는 int, 모든 소수는 double로 표현 으로 저장된다.
예) int num1 = 10000000000;     -컴파일안됨
     long num1 = 10000000000;   -컴파일안됨
     float num3 = 12.45;                  -컴파일 안됨
따라서 long으로 저장시에는 접미사에 L을 그리고 float시에는 접미사 F
하지만 int의 경우 10같은건 short로 저장된다. 2)번 추가 확인 필요
3)시스템 요소적인게 많다? 
4)다양한 영역 커버가 가능하다?
5) double num2 = 3.5f + 12; 이 연산이 c도 되나? 자바만 되나? ->다될듯 이야기하지말자 어짜피 표시해서 쓰는게 좋으니깐
6) 메소드는 수학에서의 함수 
 -> 자바 프로그램의 시작은 main이라는 이름의 메소드를 실행하는 데서부터 시작한다!
7) c언어는 함수가 중심
자바는 객체가 중심
8) 객체지향언어 자바는 6개월 정도 해도 초보자와 차이가 많이 없지만  해나가면서 재밌다.
9) c언어를 10000라인 작성 할때는 1000라인 되는 설계와는 다르다.
하지만 자바는 1000라인에서 10000라인 으로 늘어나는 부담감이 적다.
10) 자바에서 중요한건 각 객체와의 대화, 관계등이 중요하다. 객체지향에 익숙해지도록 노력해야된다.
11) 객체와 변수 나누는기준 객체 내부에 다른게있는지->객체, 해당물건이 사용되기만 하는지 ->객체 아니다.
12) 클래스는 틀
변수는 상태
메소드는 동작
13) final = const 변수를 상수화
14)참조변수 (함수를 품고있는 변수) 객체의 주소값을 가지고 있는 변수
(자바는 메모리의 직접 접근을 허용 하지 않는다 c와 다르다)
포인터와 비슷하지만 문제는 주소값을 우리가 컨트롤 할 수 없다.
(fruitseller seller = new Fruitseller();)
seller.numOfApple = 20; 혹은 seller.saleApple(10);
매개변수에는 참조 변수도 올 수 있다.
참조변수가 사실 메모리를 가리키고 있는 것은 아니다 이해를 돕기 위해 그렇게 설명한 것이고
자바에서는 주소값이라는 것이 없다고 볼 수 있다. 참조 정보라고 말하는게 맞을 수 있다.
15) 참조변수와 메소드  -> 07 - 1-3  3:00
16) 인스턴스 = 객체
클래스 내 선언된 변수 -> 인스턴스 변수
클래스 내 선언된 메소드 -> 인스턴스 메소드
따라서 인스턴스 화 해야 사용할 수 있다. 인스턴스화 하지 않으면 사용 못한다.
클래스는 틀이다 우선은 그냥 틀만
17) 중요 한거!! 7-1-3 07:34 부분 예제 ppt에 넣는다.~~~~~~~~~~~!!
18) 참조변수의 초기화는 =null로
19) 생성자 = 메소드
- 반환없으면 c 언어는 void지만 자바는 그냥 안써주면 된다. 
- 생성자의 조건 : 클래스의 이름과 동일한 이름의 메소드
                              반환형이 선언되어 있지 않으면서, 반환하지 않는 메소드
- 인스턴스 생성시
Number num = new Number ();
이건 두가지 의미이다 .: - Number의 인스턴스 생성!
                                          - Number() 생성자 호출!
생성자 호출까지 해야지 JVM에서 인스턴스 생성이라고 말할 수 있다.
- 생성자 부분은 한번만 호출된다. ( 다른 참조 변수에 인스턴스 생성시에는 그부분에 대해서 한번 즉, 인스턴스 하나당은 한번호출 새로울 인스턴스 생성시는 호출)
- 디폴트 생성자도 있다. (개발자가 안정해주면 자동으로 삽입된다.)

20) 자바의 이름 규칙
클래스, 메소드, 변수, 상수 등을 정의할때!
클래스의 이름은 Camel case (대문자로시작) 예 : MyClass
인스턴스 변수, 메소드 이름 camel case이지만 소문자로 시작 : 예 : yourAge
상수 이름은 전부 대문자 (두단어가 연달아 있을때는 _ 추가
final int RAINBOW_COLOR = 7

21) 클래스 패스와 패키지
기능이 아니라 환경, 구성이다 배경지식들
패키지는 클래스의 중복문제를 해결하기 위한 (이름 겹침을 해결하기 위한)
클래스 패스의 지정 :
한 디렉토리에 있으면 괜찮지만 서브폴더에 있으면 찾지 못한다.
클래스 패스로 등록 set classpath = .;C:~~~;~~~;이렇게
클래스 패스 cmd에서 설정하면 휘발성이지만 배치파일로 만들면 되니깐 window의 환경변수에서 지정해 주는것 보다는
배치파일을 만들어서 사용하자자

22) 패키지
우선 디렉토리를 나눠야 한다. 
패키지 선언 
클래스 선언전에  패키지를 선언 해야 된다.
패키지 경로에 따라 디렉토리에 있어야 JVM이 찾을 수 있다.
- import 선언 
: import orange.area.Circle;
 -> orange.area 패키지의 Circle을 의미 할 때눈 다 생략하고 Circle만 표시하겠다.!
:import orange.are.*;
 ->orange.area패키지로 묶겨있는 클래스의 인스턴스 생성에서는 패키지의 이름은 생략하고 클래스의 이름만 명시 하겠다." 30대 꺽인 사람은이렇게 써도 되게

23) public 클래스
하나의 소스 파일에 하나의 클래스만 퍼블릭으로 선언가능 == 우리는 허용관팀장님 하나만 필요합니다. 다른 팀장님 필요하세요??
또하나 생성자는 퍼블릭인데 클래스는 이폴트? 혹은 반대로?? -> 작은거를 따라간다.

24) 에네르기파
클래스는 많을수록 좋다. 그렇지만 하나의 메소드가 하나의 클래스가 된다면
정보은닉에 위배가 된다.
따라서 둘 사이가 적절히 유지되야 좋다.

25)static 변수는 클래스 변수로 인스턴스 생성 안해도 저근할 수 있다. 그래서 접근할때는 인스턴스. 변수 보다는 클래스.변수로 접근을 하는 것이 좋다.(인스턴스로접근할때는 인스턴스 생성하고 접근해야한다.??그럴듯) 대신 static 선언은 한개의 클래스를 정해 선언만 그쪽에서 해준다.(그 클래스 인스턴스 에 속하는게 아니다.!!)
26) static 메소드 static 변수와 비슷하다.
그리고 스태틱 메소드로만 클래스가 이루어지면 인스턴스를 생성할 필요가 없다!!
하지만 c의 스태틱이고 자바의 스태틱도 왠만하면 안쓰는게 좋다.
또한 스태틱 메소드 안에서는 같은 클래스네 인스턴스.변수는 접근 할 수 없다1!
스태팃 메소드는 인스턴스 안해줘도 사용할수 있지만 그안에 인스턴스 변수가 있다면 호출 할 수 가 없으니깐!

27) println과 메인
메인 메소드는 한 클래스에 넣는게 좋다.



28) 다이어리~~~

29) 2차원 배열 
int[][] arr = {
{1,2},
{3,4,5,},
{6,7,8,9}
}
이렇게 해도 되낟 자바는 ~~
자바의 배열은 c, c++ 보다 빨리 배울수 있지만 작은 양을 가진건 아니다.

30) 상속
재활용이 아니다
재활용은 오히려 힘들다
다른사람이 만든코드 확실해?
그리고 파악하는데 빨리할수 있어?
이를 V&V에서 보면그리고 고객사에서 재활용한 거 같은 느낌이 있는 코드가 있을때는 우리는 조금더 유심히 보자 그러면 오점이 보이지 않을까 싶다.
-그래서 재활용은 CBD라는 패러다임을 사용하여 재활용으로 인해 생기는 기간, 인력, 돈을 줄이자 


자바는 필요한 클래스만 올린다 ( 특징 !!! 다른것들은 100% 올린다.)

인스턴스의 격리에 대해서 많이 설명 해야 할듯 하다.

자바는 boolean이 있다!! 더이상 정수를 불리언처럼 사용안해도된다
(true는 1 false는 0 이렇게 이해하려 들지말자
그냥 true, false는 그 자체로 저장이 가능한 데이터 이다.)


etc.
32비트 컴퓨터는 2바이트 short 쓰느니 4바이트 int쓰는게 낫다
2바이트 short를 쓰면 32비트 컴퓨터니깐 4바이트로 바꾸게(자바가) 된다.

개인적으로
1) 03-2번 11분 20초 도표 확인

0 댓글