본문 바로가기

분류 전체보기

[Java] GUI(Graphical User Interface) 자바에는 AWT, Swing, JavaFX 등의 GUI(Graphical User Interface) 프로그램이 있습니다. AWT : 자바 초창기에 나온 GUI 라이브러리운영체제에 따라서 모양이 다 달랐기 때문에, 종류도 상당히 제한적이었다. Swing : AWT 다음으로 등장한 라이브러리윈도우 프로그램은 자바로 구현하지 않는데그 이유는 느리고  더 최적화된 C언어라인이 있기 때문입니다. JavaFX : Swing의 느린 처리속도를 보완해서 출시된 GUI입니다.다양한 기능들이 추가되었고 따로 외관 꾸미는 것도 가능해졌습니다.하지만 여전히 웹/앱쪽에서 구현하면 되기 때문에 그닥 잘 사용되지는 않습니다. 요즘은 윈도우 프로그램은 잘 안만드는 추세이고웹이나 앱쪽으로 넘어가고 있습니다.결론적으로 디자인도 별로고.. 더보기
[Java] 행성 행성에 대한 프로그램을 만들어보겠습니다. 요구 조건행성(이름, 크기, 보이는지 안보이는지)에 대한 클래스사람 (이름)에 대한 클래스이름이 '지구'인 행성 생성(행성 이름)'고길동'인 사람 생성(사람 이름)이 행성에 사람이 입주(텍스트로) 먼저 행성에 대한 클래스를 만들어 보겠습니다.package com.puft.dec161.main;public class Planet { String name; int size; Boolean isLook; 행성의 이름인 name,크인 size보이는지에 대한 여부인 isLook을 속성으로 넣어주고자동 완성으로 생성자를 생성해줍니다.  public Planet() { // TODO Auto-generated constructor stub}public Planet(String.. 더보기
[Java] Factory 팩토리 패턴(Factory Pattern)은 객체 생성 디자인 패턴 중 하나로객체를 직접 생성하는 대신 객체 생성을 담당하는 별도의팩토리 메소드 또는 팩토리 클래스를 사용하여 객체를 생성하는 방식입니다.팩토리 클래스를 만들어서 팩토리 메소드를 만들어보겠습니다. public class Academy {private int studentCount; public Student consult(String name, int age) { studentCount++; Student s = new Student(name, age, studentCount); return s; }} Student Consult라는 메소드에서Student객체의 생성자에 들어가는 변수들을메소드의 파라미터로 받아서객체를 생성하고객체를 리턴합니.. 더보기
[Java] 싱글톤 (Singleton) 객체를 여러개 찍어내더라도객체가 유일한 객체이고 싶게 하려면 어떻게 할까요?이름이 다른 객체를 2개 생성하고주소값을 출력해보면 서로 다른 것을 확인할 수 있습니다. Puft p = new Puft("김래현", 26, "puft");Puft p2 = new Puft("김래현", 26, "puft"); -----------------------------------------------------com.puft.dec135.main.Puft@139a55com.puft.dec135.main.Puft@1db9742 여기서는 싱글톤 패턴을 이용하면 되는데요.싱글톤 패턴이란클래스가 최초 한번만 메모리를 할당하고 (static)그 메모리에 객체를 만들어서 사용하는 디자인 패턴입니다.고정된 메모리 영역을 얻으면서 한번.. 더보기
[Java] 다형성(Polymorphism) 다형성이란 여러 형태를 가질 수 있는 능력을 말합니다.자바에서 다형성은 이름의 메소드나 객체가 다양한 방식으로 동작하는 특성을 말합니다.다형성이라는 특징을 사용하면상위타입 변수에 하위타입 객체를 담는 것이 가능합니다. 같은 형태이지만 다른 기능을 할 수 있게됩니다.이는 Overriding과 밀접한 관련이 있습니다. 예를들어Avengers 타입의 변수에 Ironman 객체를 담을 수 있는데 Ironman i = new Ironman("a", 123,123123); Avengers a = new Ironman("b", 123 ,1231323);이렇게 상위 클래스 타입에  하위 클래스 타입의객체를 참조하게 되면상위 클래스에서 하위클래스의 멤버 변수나메소드도 접근할 수 있게됩니다.즉, 코드의 유연성과 확장성이 .. 더보기
[Java] 추상화 (abstract) 추상화는 공통의 속성이나 기능을 묶어서 이름을 붙이는 것입니다.abstract메소드는 미완성 메소드인데하위클래스에서 반드시 오버라이딩 해야합니다.abstract메소드가 하나 이상 있으면해당 클래스는  추상클래스나 interface로 활용되어야 합니다.추상 클래스는 사용할 클래스들의 공통적인 속성,기능들을 추출해어느정도 규격을 잡아놓은 추상적인 클래스입니다. public abstract void roar(); 상위 클래스에서 추상메소들 구현해놓으면 public class Bird extends Animal { private int leg;public Bird(String sort, int age, int leg) { super(sort, age); this.leg = leg;}@Override public.. 더보기
[Java] 캡슐화(Encapsulation) 캡슐화는 멤버변수에 접근할 수 있는 '통로'를 만들고그 통로에 안전장치를 하는 개념입니다.즉 외부에 노출할 필요가 없는 정보들을캡슐처럼 감싸서 '은닉'하는 기능이라고 할 수 있습니다.멤버변수를 외부에서 직접 건드릴 수 없도록 'private'를 걸어놓음으로써캡슐화를 할 수 있습니다.그러면 private 변수를 외부에 출력하거나 리턴은 어떻게할까요?바로 getter와 setter기능을 이용해서 하면 됩니다.getter와 setter 기능을 단축키를 심어서사용하면 편리한데요.단축키를 심는 과정입니다. 메뉴 - Window - Preferences - 왼쪽 상단에 'keys' 검색- 화면 바뀌면 - 중앙 검색란에 'generate'를 검색 - Generate Getters and Setters 선택- 원하는 .. 더보기
[Java] 접근 제어자(Access Modifier) 접근 제어자(Access Modifer)는 외부에서(멤버변수, 클래스 등에)접근하지 못하도록 제한하는 역할을 합니다.접근제어자가 사용될 수 있는 곳은 클래스, 멤버변수, 메서드, 생성자입니다. 종류는 4가지가 있습니다.private - 같은 클래스 내에서만 접근이 가능하다.default - 같은 클래스나 같은 패키지에서 접근 가능하다. (접근 제어자를 쓰지 않은 상태)protected - 같은 패키지나 다른 패키지라면 그 하위 클래스에서 접근이 가능하다.public - 접근 제한이 없음. 접근 범위를 표현하면 private 이렇습니다. 실습을 통해 확인해보겠습니다.package com.puft.dec123.main;public class Dog { public int a; protected int b; .. 더보기