카테고리 없음

배열 , method, class

logloglog 2021. 1. 25. 13:00

OOP : object orieted programming 

oop 의 핵심은 extends(상속)

 

def : 자바스크립트의 function.. 메서드

__init__ : 생성자 

 

파이썬은 자바와달리 소멸자(__del)가있음( 자바는 가비지컬렉터가 자동으로 죽여버림)

 

자바는 가능한데, 파이썬은 위에선언되어있어야 밑에서 읽음. 자바스크립트랑 같다. 인터프린트언어이기떄문에

 

~스크립트가 붙는다면 인터프린트 언어

브라우저(클라이언트)쪽 언어가 자바스크립트. 서버쪽언어가 자바


파이썬의 멀티리턴

def addsubmuldiv(a,b):
    return a+b, a-b, a*b, a/b

sum, sub, mul, div = addsubmuldiv(1, 2)

print(sum)
print(sub)
print(div)
print(mul)

 


자바는 단일상속

파이선은 다중상속

 

개 와 새 의 특징을 하나에 받을수잇따.

 

*파이선은 기본 모두 퍼블릭이고 강제적으로 프라이빗을 만들수있따.

 

저게 super와 비슷. 저걸 안해주면 부모거를 쓸수없다. 오류뜸

 

class Dog:
    def __init__(self):
        self.age = 1
        self.bark = "mungmung"

class Bird:
    def __init__(self):
        self.f_power = 0
        self.twitter = "zzack"
        
class GaeSae(Dog,Bird):
    def __init__(self):
        Dog.__init__(self)
        Bird.__init__(self)
    
gs = GaeSae()

print(gs.age)
print(gs.bark)
print(gs.f_power)
print(gs.twitter)
    

파이선은 대부분은 다른언어의 라이브러리 가져와서쓰는데, 대부분이 C++임

C#은 자바랑 문법이 비슷함.

 

C랑 C++ 은 빠름

JAVA랑 PYTHON은 느림

 

파이썬의 목표는 C++에서 가져와서 그것만 쓰는데에 목적이있는거임

그 예가

TensorFlow

 

그래서 가져오는데에 그 목적이 있기떄문에 파이선은 PRIVATE를 쓸 필요가 굳이 없다.

 


지금까지 콘솔프로그램에 프린트햇음

콘솔 > GUI[VB, Delphi, (AWT, SWING, SWT 이 셋은 자바안에 들어가잇음)] > 웹버전

 

 

마켓플레이스 > windowbuilder 다운(awt, swt를 편하게 쓸수잇는 툴)

 

java

AWT

package day2;

import java.awt.Frame;

public class GuiTest01 {
	public static void main(String[] args) {
		Frame f = new Frame();//window의 개념.. 1. 생성
		f.setSize(400,400);//2. 사이즈
		f.setVisible(true);//3. visible
		
		
	}
}

frame (window)를 단 세줄에 띄울수있따.


JFrame

 

package day2;

import javax.swing.JFrame;

public class GuiTest02 {
	public static void main(String[] args) {
		JFrame f = new JFrame();//1.생성
		f.setSize(500, 500);//2.사이즈
		f.setVisible(true);//3.비지블
	}
}

 


SWT

이클립스도 swt로 만들엇따. 이땐 jface

 

Panel 이 추가됨

앞의  awt 창과 다르게 그 앞에 패널이 추가로 붙은거임

 

버튼을 눌러서.. (이벤트) 실행함

이벤트 중심의 프로그램으로 바뀌는거임 (GUI가)

 

레이아웃을 앱솔루트로 해놓고

 

 

*click_btn <이런건 snake 표기법

clickBtn < 카멜표기법

 

이c 가 이벤트를 생성해주는..

 

 

click : 클릭시 (버튼누르고 그 버튼영역안에서 뗐을때의 클릭)

enter : 커서가 버튼안으로

exited : 커서가 버튼밖으로 빠져나가는순간

pressed : 버튼을 눌렀을때

released: 버튼을 뗐을때

 

package day2;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class GuiTest03 extends JFrame {

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GuiTest03 frame = new GuiTest03();//1. jframe생성 (생성자발동)
					frame.setVisible(true);//3. 비지블
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public GuiTest03() {//생성자
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);//사이즈
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lbl = new JLabel("Good Morning ^_^");
		lbl.setFont(new Font("Arial", Font.BOLD, 13));
		lbl.setForeground(Color.BLUE);
		lbl.setBounds(35, 28, 135, 15);
		contentPane.add(lbl);
		
		JButton btn = new JButton("change night");
		btn.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				if(lbl.getText()=="Good Morning ^_^") {
					lbl.setText("Good Evening =_=");
				}else {
					lbl.setText("Good Morning ^_^");
				}
			}
		});
		btn.setBounds(33, 53, 137, 74);//크기와 위치정해서
		contentPane.add(btn);//그 패널에 딱 붙여주는거임
		
	}
}

 

 

package day2;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.Font;
import java.awt.Color;

public class GuiTest04 extends JFrame {

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GuiTest04 frame = new GuiTest04();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public GuiTest04() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lbl = new JLabel("1");
		lbl.setFont(new Font("Arial", Font.PLAIN, 20));
		lbl.setBounds(27, 40, 57, 15);
		contentPane.add(lbl);
		
		JButton btnIncrease = new JButton("Increase");
		btnIncrease.setForeground(Color.RED);
		btnIncrease.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				lbl.setText(Integer.parseInt(lbl.getText())+1+"");
			}
		});
		btnIncrease.setBounds(140, 65, 94, 64);
		contentPane.add(btnIncrease);
		
		JButton btnDecrease = new JButton("decrease");
		btnDecrease.setForeground(Color.BLUE);
		btnDecrease.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				lbl.setText(Integer.parseInt(lbl.getText())-1+"");
			}
		});
		btnDecrease.setBounds(27, 65, 101, 64);
		contentPane.add(btnDecrease);
	}

}

increase 버튼 누르면 +, decrese 버튼 누르면 -

1. JtextField (tf)

로 같은 문제

package day2;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class GuiTest05 extends JFrame {

	private JPanel contentPane;
	private JTextField tf;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GuiTest05 frame = new GuiTest05();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public GuiTest05() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		tf = new JTextField();
		tf.setText("1");
		tf.setBounds(133, 36, 116, 21);
		contentPane.add(tf);
		tf.setColumns(10);
		
		JButton btnDecrease = new JButton("decrease");
		btnDecrease.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				tf.setText(Integer.parseInt(tf.getText())-1+"");
			}
		});
		btnDecrease.setBounds(39, 81, 97, 23);
		contentPane.add(btnDecrease);
		
		JButton btnIncrease = new JButton("increase");
		btnIncrease.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				tf.setText(Integer.parseInt(tf.getText())+1+"");
			}
		});
		btnIncrease.setBounds(219, 81, 97, 23);
		contentPane.add(btnIncrease);
	}
}

2. jtextField (tf1) label "+"(lbl) jtextField (tf2) btn "=" jtextField (tf3)

package day2;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class GuiTest06 extends JFrame {

	private JPanel contentPane;
	private JTextField tf1;
	private JTextField tf2;
	private JTextField tf3;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GuiTest06 frame = new GuiTest06();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public GuiTest06() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		tf1 = new JTextField();
		tf1.setBounds(28, 61, 46, 21);
		contentPane.add(tf1);
		tf1.setColumns(10);
		
		JLabel lbl = new JLabel("+");
		lbl.setBounds(106, 64, 15, 15);
		contentPane.add(lbl);
		
		tf2 = new JTextField();
		tf2.setBounds(146, 61, 46, 21);
		contentPane.add(tf2);
		tf2.setColumns(10);
		
		JButton btn = new JButton("=");
		btn.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				tf3.setText(Integer.parseInt(tf1.getText())+Integer.parseInt(tf2.getText())+"");
			}
		});
		btn.setBounds(227, 60, 39, 23);
		contentPane.add(btn);
		
		tf3 = new JTextField();
		tf3.setBounds(293, 61, 56, 21);
		contentPane.add(tf3);
		tf3.setColumns(10);
	}

}

3.tf1 에서(lbl1) tf2 까지합은(btn) tf3

package day2;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class GuiTest07 extends JFrame {

	private JPanel contentPane;
	private JTextField tf1;
	private JTextField tf2;
	private JTextField tf3;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					GuiTest07 frame = new GuiTest07();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public GuiTest07() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		tf1 = new JTextField();
		tf1.setBounds(34, 89, 72, 21);
		contentPane.add(tf1);
		tf1.setColumns(10);
		
		JLabel lbl = new JLabel("에서");
		lbl.setBounds(143, 92, 57, 15);
		contentPane.add(lbl);
		
		tf2 = new JTextField();
		tf2.setBounds(194, 89, 72, 21);
		contentPane.add(tf2);
		tf2.setColumns(10);
		
		JButton btn = new JButton("까지의 합은");
		btn.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				int a = Integer.parseInt(tf1.getText());
				int b = Integer.parseInt(tf2.getText());
				int sum = 0;
				for(a=a; a<=b; a++) {
					sum+= a; 
				}
				tf3.setText(sum+"");
			}
		});
		btn.setBounds(82, 130, 125, 23);
		contentPane.add(btn);
		
		tf3 = new JTextField();
		tf3.setBounds(243, 131, 116, 21);
		contentPane.add(tf3);
		tf3.setColumns(10);
	}

}