본문 바로가기

웹 프로그래밍 기초162

자바기반의 웹&앱 응용 SW개발자 양성과정 19일차 -35 1. 정적 변수 static = (변화 움직임이 없이) 고정된이란 뜻을 가지고 있는 단어이다. static은 보통 변수나, 메소드 앞에 static키워드를 붙여서 사용하게 된다. 예시로 한번 정리해보겠다 public class Example { String exam = "국어"; public static void main(String[] args) { Example ex1 = new Example(); Example ex2 = new Example(); } } 다음과 같은 코드가 있다. Example 클래스의 객체를 생성을 위와 같이 하게 된다면 객체 변수 exam을 저장하기 위해 객체마다 메모리를 별도로 할당하게 된다. 우리가 "국어"라는 값만 필요하고 추가적인 객체를 생성할 때도 항상 값이 변하지 않.. 2020. 3. 24.
자바기반의 웹&앱 응용 SW개발자 양성과정 18일차 -34 인터페이스를 정리하기 전에 먼저 abstract와 interface 차이점을 정리하겠다 많이 헷갈린다. 두 가지는 서로 밀접하면서 약간의 다른 기능을 가지고 있습니다. abstract클래스는 일반적인 클래스와 다를 바가 없습니다. abstract메서드를 하위클래스가 상속받아서 사용하도록 강제한다는 차이외에는 같습니다. 하위클래스에서 상속 오버라이딩하도록 기대하는 비어있는 abstract메소드가있지만 동시에 실제 구체적인 로직을 가지고있는 필드나 메소드가 존재할 수 있는 클래스가 abstract클래스입니다. interface는 구체적인 로직을 가지고있는 메소드를 interface안에 구현하면 안 됩니다. interface는 반드시 본체가 없는 메서드들만을 가지고 있어야 합니다. 1. interface 어떤.. 2020. 3. 19.
자바기반의 웹&앱 응용 SW개발자 양성과정 18일차 -33 1. 추상 클래스 &추상 메서드 (abstract) abstract는 한국어로 번역하게되면 "추상적인"이라는 말이 됩니다. 하지만 그 뜻을 이해하기 쉽게 이용 됐을 때 사용되는 뜻으로 번역해 보자면 "공통분모"입니다 그룹 된 클래스 내에서 공통적으로 사용되는 기능들을 모아서 한 곳으로 모아 놓기 위한 공간 정도로 생각합니다. 기본적인 문법 public void abstract Class A public abstract int bMethod(); ------------------------------- public void Class B extends A{ @Override public int bMethod(){ return 3; } } 우리는 추상클래스와 매소드를 지정해줄 때 abstract라는 키워드를.. 2020. 3. 19.
자바기반의 웹&앱 응용 SW개발자 양성과정 17일차 -32 객체 지향과 좀더 친밀감을 쌓기 위해 비행기 게임을 만들어보자. 1. 시나리오작성 더보기 1. 화면에 바 객체 플레이어,적기,미사일,총알 이번에는 콘솔창이아닌 윈도우창에서 게임을 그래픽형태로 구현하기때문에 Java의 awt(Abstract Windows Tookit)에대해 알고 넘어가야한다. 1) awt란 java에서 지원되는 기본적인 GUI 컴포넌트의 집합입니다. 자바는 O.W.R.A로써 고안되었으므로 한가지 운영체제에 맞는 GUI라이브러리를 가지고 있을 수 는 없습니다. AWT는 OS차원의 GUI컴포넌트들을 추상화 시키고, 이들에 대해 동일한 인터페이스를 통하여 접근,통제할 수 있도록 만들어져 있습니다. GUI운영체제들이 가지고있는 공통적인 부분들은 대부분 포함하고 있으므로 여러기종에서 실행될 수 있.. 2020. 3. 18.
자바기반의 웹&앱 응용 SW개발자 양성과정 17일차 -31 is a 상속으로 상위클래스 하위클래스를 정해주면 다양하게 객체를 생성할때 참조객체를 정해줄수 있습니다. 객체와 참조변수 사이에 부모 자식 관계가 존재한다면 자료형식이달라도 부모형식으로 자식객체를 참조할 수 있습니다. public class NewlecExam extends Exam { } Exam exam = new Exam(); NewlecExam newlec = new NewlecExam(); Exam exam = new NewlecExam(); 이 반대는 가능하지않습니다. Exam을 상속하게되면 newlec객체가 생성될때 부모 객체도 같이 생성되게되는데 부모+자식 을가지게 됩니다 반대인 NewlecExam newlec = new Exam();을 하게되면 부모인 exam말고 newlec의 부분만 참.. 2020. 3. 18.
자바기반의 웹&앱 응용 SW개발자 양성과정 16일차 -30 1)Is a 상속 전 시간에 has a 상속에 알아봤다면 이번에는 기존클래스를 재사용할수 있는 is a상속에대해 정리를 해볼려고합니다. has a 상속만으로 프로그램을 구현하기위해서는 원하는 각 부품을 모아서 만드는 방법이있습니다. 부품이 전부 있다면 되겠지만 한부분이 없다면? 직접구현하거나 비슷한 다른 틀을 가져와서 원하는 부품으로 만든뒤 다시 부품을 조립하는 방법이있습니다. 바로 비슷한 틀을 가져와서 원래 목적에맞게 조금만 수정하게되어 사용하게된다면 생산성이 굉장히 높아지고 소요비용도 절감될 수 있습니다. 그틀을 우리는 FrameWork이라고 합니다. a has a b 관계가 있다는 말은 a제품을 만들 때 b제품을 부품으로 사용했다는말이고 a is a b 관계가 있다는 말은 a제품을 만들 때 b제품을.. 2020. 3. 18.
자바기반의 웹&앱 응용 SW개발자 양성과정 16일차 -29 1. has a 상속has a관계는 하나의 개체가 기능이 분리가 되어서 두 개로 나누어지면 하나는 제품형이 되며 하나는 부품형이 됩니다 제품은 실제 기능을 구현하는 부분이며 부품은 제품에 이용당하는 쪽이 됩니다. 제품은 부품을 가지는 관계를 가리켜 HAS A 관계라고 합니다.부품이라는 개념은 상대적이라 부품이 제품이 될수도있습니다.아래 코드에서 두 클래스 ExamConsole , Exam을 결합시키는 자바 코드입니다. public class ExamConsole { private Exam[] exams; private int index; public ExamConsole() { exams = new Exam[3]; index = 0; for(int i =0; i 2020. 3. 18.
자바기반의 웹&앱 응용 SW개발자 양성과정 15일차 -28 import java.awt.Frame; public class Program { public static void main(String[] args) { GameFrame gf = new GameFrame(); gf.setVisible(true); //=>Frame.repaint //=>Frame.update //=>Frame.paint gf.setSize(500, 700); } } import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; public class GameFrame extends Frame { private Image imgFighter, img; public GameFra.. 2020. 3. 17.
자바기반의 웹&앱 응용 SW개발자 양성과정 14일차 -27 상속과 오버라이드 기본의 재사용할수 있는 라이브러리를 틀로 사용하게되며 내가 기능을 추가하고 싶다면 메서드를 오버라이드해서 기능을 추가할 수 있습니다. 그럼 상속관계에서 메소드의 우선순위 관계에 대한 의문. import java.awt.Frame; public class Program { public static void main(String[] args) { GameFrame gf = new GameFrame(); gf.setVisible(true); //=>Frame.repaint //=>Frame.update //=>Frame.paint gf.setSize(500, 700); } } import java.awt.Frame; import java.awt.Graphics; import java.awt... 2020. 3. 17.
에이콘 아카데미 JAVA 복습 2주차 정리 -2 1. 생성자와 생성자 오버로드생성자란 객체가 생성될때 실행되는 구문입니다. 왜 생성자가 필요할까요? 저는 사실 초기화에 대한 잘못된 생각을 가지고 있었습니다. 변수 초기화의 의미는 변수에 초기값을 대입해주는 의미입니다. 대입해주지 않으면 자료형에 맞춰서 기본값을 세팅해줍니다. 객체 초기화의 의미는 객체 속성에 초기값을 대입하는 의미입니다.사실 오해를 불러일으킬만한 요소는 객체를 초기화한 적이 없는데 자바에서는 객체의 속성을 모두 0 (참조 변수 일 경우에는 NULL)로 초기화해주는 함수를 가지고 있습니다. 다음 사진을 보면 이해가 됩니다. 즉 kor이라는 속성에 초기값을 입력해주지 않았는데 자동적으로 0이라는 값이 출력됩니다.그럼 모든 변수는 메모리에 할당될 때 무조건 0 , null로 설정되는 것은 아.. 2020. 3. 15.