본문 바로가기

반응형

전체 글

(41)
다운, 업 캐스팅 Casting이란? 캐스팅이란 타입을 변환하는 것을 말하며 형변환이라고도 한다. 자바의 상속관계에 있는 부모와 자식 클래스간에는 서로 간의 형변환이 가능하다. 업캐스팅(Upcasting) 업캐스팅이란 자식 클래스의 객체가 부모 클래스 타입으로 형변환 되는 것을 말한다. 부모 클래스는 Person, 자식 클래스는 Student이다. 아래 코드에서 Person p = s; 부분이 업캐스팅 된 부분이다. p가 Student 객체를 가르키지만, p는 Person 타입이기 때문에 Person 클래스의 멤버에만 접근이 가능하다. 그렇기에 p.check에서 컴파일 타임 에러가 발생한다. class Person{ String name; Person(String name){ this.name = name; } } cla..
instanceOf 연산자 instanceOf 연산자 instanceOf는 객체타입을 확인하는데에 사용한다. 해당 여부를 true, false로 가르쳐준다. 한마디로 부모 객체인지 자식 객체인지 확인하는데 쓴다고 생각하면 된다. instanceOf 사용법 사용형식은 '객체 + instanceOf + 클래스' 이다. A를 부모, B를 자식 클래스로 세팅하고 두 클래스 간 형변환이 가능한지 확인해보았다. 세 번째 결과가 false인 이유는 부모가 있어야 자식이 있는데, 세 번째는 부모가 자식이 되려 했기 때문 반면, 이 결과는 false를 리턴한다. ArrayList는 Set도 아니고, Set을 상속하지도 않기 때문이다. Object에 대한 instanceOf 모든 클래스는 Object를 상속하기 때문에 object instanceO..
for each문 for each문 사용법 우선 for문이랑 비교 먼저 해보자. for each문은 사용에 따라 코딩양을 줄일 수 있고 직관적으로 작성 되어 가독성이 높아지게 된다. [for문 사용 연습] name배열의 각 요소 값을 순차적으로 Nm에 전달한다. name은 iterator 즉 배열이나 컨테이너등 여러 데이터가 담겨져 있는 변수다. [수행 결과] name의 배열 길이 값은 4이다. 그리하여 for each문은 총 4회 수행되며 수행 될 때 배열 값 첫 번째 값인 철수를 Nm에 전달한다. 배열의 값 하나하나씩을 전달하여 철수, 영희.민수, 희동 순으로 출력되는 것을 볼 수 있다. 배열 외에도 vector, List에도 활용 가능하다.
[JAVA]122206 - Set , LinkedList, Queue, LinkedHashset, TreeSet, Map Set List와 비슷하지만 차이점은 Set에는 중복된 값을 넣을 수 없다. 동등하게 add를 통해 원소를 추가할 수 있지만 add는 boolean값을 반환하고, 존재하는 원소와 같은 값이 들어가려하면 false를 반환한다.또한 List는 추가한 순서대로 index를 채워넣지만 Set에는 순서가 없다. // Collection > Set > HashSet Set set = new HashSet(); set.add("둘리"); set.add("가나다"); set.add("도우너"); set.add("길동"); set.add("둘리"); set.add("둘리"); set.add("둘리"); set.add("둘리"); set.add("둘리"); set.add("둘리"); // set에는 동등한 원소를 넣을 수..
[JAVA]221205 - Collection (List, 제네릭, 이터레이터) List Collection은 배열이나 집합을 쉽게 다루기위한 도구들의 집합이다. 그 중 처음으로 배운 것은 'List' ! 배열처럼 사용이 가능하고, 길이값 설정이 유동적으로 바뀌어서 편하게 사용이 가능하다. 'List'에 객체를 집어넣을 때에 객체의 형태로 넣어야해서 기본형 타입의 자료를 박싱하여 넣어야하는 것이 원칙이다. 하지만 파라미터에 리터럴값으로 넣어줘도 autoboxing이 일어나기에 기본형으로 넣어도 된다. import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { // Collection 배열을 쉽게 다루기위한 도구 // List == 인터페이스, ..
[JAVA]221202 - MouseListener, MouseAdapter, 익명클래스, KeyListener, JDialog MouseListener 'JFrame'에 마우스리스너라는 기능은 마우스클릭 외의 다양한 동작을 활용할 수 있는 인터페이스다. 마우스리스너에는 mousePressed, mouseReleased, mouseEntered, mouseExited 추상 메소드가 포함되어있다. mousePressed 사용자가 마우스를 눌렀을 때 이벤트가 발생하는 메소드다. mouseReleased 사용자가 마우스버튼을 눌렀다가 뗏을 때 이벤트가 발생하는 메소드다. mouseEntered 마우스 커서가 컴포넌트 안으로 위치할 때 이벤트가 발생하는 메소드다. mouseEntered 마우스 커서가 컴포넌트안에서 밖으로 위치할 때 이벤트가 발생하는 메소드다. MouseAdapter 'MouseAdapter'클래스는 생성 후 마우스리스너..
[JAVA] 221201 - CardLayout, tabbedPane, JCheckBox, JRadioButton CardLayout 'cardlayout'은 각 컴포넌트들을 카드처럼 겹쳐 놓은 상태로 보여주는 레이아웃이다. 한 번에 하나의 카드만 보이며, 컨테이너는 일련의 카드 역할을 한다. [매개변수] CardLayout() 기본 레이아웃을 설정해준다. CardLayout(int hgap, int vgap); 가로 세로 여백을 설정할 수 있다. *생성자 소스코드 패널 First와 Second를 Center패널에 추가 한 후, 버튼 2개를 North위치에 배치한 패널에 추가했다. First 패널에'첫번째 화면' Second 패널에 '두번째 화면'이라는 Label을 추가하고 Center패널에 각각의 패널을 추가하였다. public TestCard() { JPanel pn1First = new JPanel(); JPa..
[JAVA] 221130 - JFrame, swing, swing layout 종류 JFrame란 jframe은 java swing 클래스의 일부이며 구현되는 하나의 창이다. 스윙은 자바에서 그래픽 사용자 인터페이스를 구현하기 위하여 제공되는 클래스 또한 버튼, 창, 표, 트리 등의 컴포넌트들을 이용할 수 있게 해주는 클래스 이다. 창에서의 메인 프레임으로 볼 수 있다. *JPanel 메인 프레임 위에 올라가는 보조 프레임 *JLabel 등등 각 종 "UI" ex) JButton, JTextField .. 기능을 수행하는 컴포넌트 *카운트, 감소, 리셋 버튼을 구현한 창 class MyFrame extends JFrame implements ActionListener { private JLabel lb1Number; private int number; public MyFrame() { ..

반응형