Java �N���X�A���\�b�h

�ڎ�


���\�b�h

���w�֐��̂悤�Ȋ֐��������Œ�`���邱�Ƃ��ł���BC++�Ŋ֐��ƌĂ񂾂��̂� Java �ł̓��\�b�h�Ƃ����B�O�ˆȏ�������󂯎��A�܂Ƃ܂����d�������s���ĂO�‚܂��P�‚́i���l�Ƃ͌���Ȃ��j�l��Ԃ��B���\�b�h�̈�ʓI�Ȍ`���͎��̒ʂ�B

�i�C���q�j�@�߂�l�̌^�@���\�b�h��(�����̕���)�@{ ���\�b�h�̒�`�v���O���� }

�u�C���q�v�� public, static �Ȃǂ̑����������B �u�߂�l�̌^�v�́Areturn �ɑ����Ēl���u�����ꍇ�͂��̒l�̌^�������A���ꂪ�Ȃ��ꍇ�� void �Ə����B�����́A�f�[�^�^�ƕϐ������X�y�[�X�ŋ�؂����y�A�Ƃ��A�����y�A����ꍇ�̓J���}�ŋ�؂�B�f�[�^�^�͕ϐ����ƂɎw�肵����΂����Ȃ��B���\�b�h�̒�`�v���O�����́A�P�ˆȏ�̖��ߕ��A���邢�͐錾���A���Z�~�R�����i�Ɖ��s�j�ŋ�؂��ĕ��ׂ�B�����̖��ߕ��� { } �ł܂Ƃ߂��R�[�h�u���b�N�̏ꍇ�́A } �̌�̃Z�~�R�����͕s�v�B

public static ���������� main() ���\�b�h�̓R���p�C����ŏ��Ɏ��s����郁�\�b�h�A�Ƃ������ʂȈӖ������B

���\�b�h�����s�����邽�߂ɂ́A

���\�b�h��(�����̕���);

�Ƃ������ߕ������s����Ηǂ��B���̂Ƃ��A�����̕��т̓��\�b�h�̒�`�Ŏw�肳�ꂽ�����̕��тƌ��A�^����v�������̂ŁA�i�^�͎w�肹���j���̒l�����������B�Q�ˆȏ゠�鎞�̓J���}�ŋ�؂�B�����ŏ����ꂽ�����́A���\�b�h�̒�`�ŏ����ꂽ�����Ƌ�ʂ��邽�߂��������ƌĂ΂�A���\�b�h�̒�`�ŏ����ꂽ�������������ƌĂ΂��B�������͕ϐ����łȂ���΂����Ȃ����A�������͕ϐ����ł��萔�ł��A�͂��܂����\�b�h���s���ł����Ă��A�������ɑΉ�����^�̒l���m�肷����̂ł���΁A�Ȃ�ł��\��Ȃ��B���������������̌^�ƍ���Ȃ��ꍇ�A���������ꍇ�����邪�A���킹�Ă������ق����ԈႢ���Ȃ��B

�z��f�[�^���������Ƃ���ꍇ�͔z�񖼂����������B������f�[�^�͂P������v�f�Ƃ���z��Ƃ݂Ȃ����̂ŁA�����z�񖼂����������B�z��̒����́A�z�񖼂ɑ����āu.length�v�Ə������ƂŎQ�Ƃł���̂ŁA�����Ƃ���K�v�͂Ȃ��B

���\�b�h�̒��Ŏg�p�����ϐ��̂����A���\�b�h���Ő錾���ꂽ�ϐ��́A���̃��\�b�h�̒������ŗL���ŁA���\�b�h���I������Ɩ���`��ԂɂȂ�B�錾�Ȃ��ɕϐ����g�p����ꍇ�́A���̃��\�b�h���܂ރN���X�̕ϐ����Ƃ��Ē�`����Ă��Ȃ���΂����Ȃ��iC++ �̃O���[�o���ϐ��ɑΉ�����j�B

�I�[�o�[���[�h�i���d��`�j

�������\�b�h���ň����̕��сi�����j���Ⴄ���\�b�h�𓯂��N���X���Œ�`���邱�Ƃ��ł���B���̒�`�̎d�����I�[�o�[���[�h�ƌĂ΂��B�Ⴄ�^�̃f�[�^�ɓK�p������A�ꕔ�̈�����萔�������肷�邪��Ɠ��e�͓����i�悤�Ȃ��́j�Ƃ����ꍇ�Ɏg�p����A�v���O�����̉“ǐ��̂��߂ɗL���Ȏ�@�ł���B

�������� int... a �Ə����A�������� int �^���� n �•��ׂ�ƁAa[0], a[1], ... a[n-1] ���������Ƃ��ă��\�b�h�ɓn���ꂽ���ƂɂȂ�B���̏ꍇ�An �̓��\�b�h���Ăяo�����тɕς���Ă��ǂ��B������•ϕϐ��Ƃ����B�•ϕϐ��́A�ʏ�̈����Ƌ����ł��邪�A�K���A�Ō�̈����Ƃ��Ďw�肵�Ȃ���΂����Ȃ��B

�ċA�I���\�b�h

���\�b�h�̒����玩�����g���Ăяo�����Ƃ��ł���B���̂悤�ȎQ�Ƃ̎d���͍ċA�Ăяo���ƌ�����B

public static int factorial(int n) {
	if(n <= 0) return 1;
	return factorial(n-1) * n;
}

if ���͍ċA�̘A����ł��؂邽�߂ɕK�v�ŁA���ꂪ�Ȃ��Ɩ\������B�ċA�Ăяo������Ƃ��A���\�b�h�̏����͓r���Ȃ̂ŁA���̍�Ɠ��e���m�ۂ����܂܎��̌Ăяo���ꂽ���\�b�h�̏������J�n����̂ŁA�ċA�̘A���������Ȃ�Əꍇ�ɂ���Ă̓p���N���Ă��܂����Ƃ����肤��B���܂�傫�ȏ����v���O�����ɍċA�Ăяo���͎g��Ȃ��ق����ǂ��B

�N���X

Java�̃v���O�����̊�{�P�ʂ̓N���Xclass�ŁA�P�ˆȏ�̃N���X���W�߂����̂��p�b�P�[�Wpackage �Ƃ��Ă܂Ƃ߂邱�Ƃ��ł���B�P���ȉۑ�ł���΁A��‚̃N���X�ő���邪�A�����łȂ��ꍇ�́A�܂Ƃ܂����d���P�ʂɃN���X���`���A�������p�b�P�[�W�ɂ܂Ƃ߁A�L�@�I�Ɍ��т‚��邱�Ƃʼnۑ�����̃v���O���������Ƃ����v���O���~���O�̃X�^�C���͍�Ƃ̌������̂��߂ɗL���ł���B

�N���X�͂O�ˆȏ�̃f�[�^�̐錾���ƃ��\�b�h����Ȃ�B�N���X�́A�ϐ����Ɠ����K���ɏ]�������O�i�N���X���j���w�肵�Ď��̂悤�ɒ�`����B�錾���ɂ��ϐ��ɂ͏����l���ݒ肳���B�����I�Ɏw�肵���ꍇ�͂��̒l�A���ꂪ�Ȃ��ꍇ�́A���l�Achar�^�͂O�A�_���ϐ��� false�A����ȊO�� null �ƂȂ�B

class �N���X�� {
�O�ˆȏ�̐錾��
�O�ˆȏ�̃��\�b�h
}

���邢��

public class �N���X�� {
...
}

public �͑��̃p�b�P�[�W����Q�Ƃ������ꍇ�ɕt����C���q�ł���B

Java �̃A�v���P�[�V�����v���O�����̃p�b�P�[�W�ɂ́A�i�v���O�������N�����邽�߂Ɂjpublic static void main() �Ƃ������\�b�h���܂ރN���X�����傤�ǂP�‚����܂܂�Ă��Ȃ���΂����Ȃ��B

�p���A�e�N���X�A�q�N���X

�N���X�͈ꂩ����ꍇ�����邪�A���łɒ�`����Ă��鎗���d��������N���X�̈ꕔ�����������ĐV���ȃN���X�Ƃ���ꍇ�������B

class �N���X���P extends �N���X���Q{
...
}

�̂悤�Ɏn�܂�N���X�̒�`�́A�u�N���X���P�v�Œ�`����Ă��郁�\�b�h�ȊO�́u�N���X���Q�v�Œ�`����Ă��郁�\�b�h�����̂܂܎�荞�ށA�Ƃ������Ƃ��Ӗ����Ă���B�����̃N���X�œ������O�̃��\�b�h������ꍇ�́u�N���X���P�v�̃��\�b�h���D�悳���B���̂Ƃ��A�u�N���X���Q�v�̃��\�b�h�́u�N���X���P�v�̃��\�b�h���I�[�o�[���C�h���ꂽ�Ƃ����B

�u�N���X���P�v���e�N���X�i�X�[�p�[�N���X�j�A�u�N���X���P�v���q�N���X�i�T�u�N���X�j�ƌ����A�q�N���X�͐e�N���X���p�������Ƃ����BJava�ɂ́A���̖ړI�̂��߂ɔėp�̃N���X��������`����Ă���A�v���O���~���O��Ƃ̌y���ɖ𗧂��Ă���B�i��q�̃C���^�[�t�F�[�X�������j��ˆȏ�̐e�N���X���p�����邱�Ƃ͂ł��Ȃ��B

�Ⴆ�΁A���́AJava ����`���Ă��� Canvas �N���X���p�������q�N���X�̗�ł���B�t�B�[���h�͂Ȃ��A�R���X�g���N�^�ƌĂ΂�� MyCanvas ���\�b�h�ƁApaint ���\�b�h����`����Ă���Bpaint ���\�b�h�͐e�N���X�Œ�`����Ă��郁�\�b�h�ł����邪�A�q�N���X�ŃI�[�o�[���C�h����Ă���B

class MyCanvas extends Canvas {
	MyCanvas(Dimension size) {
		this.setSize(size);
	}
	public void paint(Graphics g) {
		g.drawRect(10, 10, this.getWidth()-20, this.getHeight()-20);
		g.drawString("MyCanvas", 20, 40);
	}
}

�C���X�^���X

main() ���\�b�h���܂܂Ȃ��N���X�́A�ϐ��ƃ��\�b�h�̒�`�W�̂悤�Ȃ��̂ŁA���ꎩ�̂Ƃ��Ď��s���邱�Ƃ͂ł��Ȃ��B���̃��\�b�h�����s���邽�߂ɂ́A���̃N���X���̂悤�Ȑ錾�����g���Ď��̂�^����K�v������B

�N���X�� �ϐ��� = new �N���X��(�������X�g);

��‚́u�N���X���v�͓������̂ł���B��{�f�[�^�^�̕ϐ��Ɠ����悤�ɁA���̕ϐ����u�N���X���v�Ƃ����f�[�^�^�����B���̕ϐ��́u�N���X���v���C���X�^���X�i���j�i���A���́A���g�H�j�ƌĂ΂��B

�u�N���X���v�Œ�`����Ă��郁�\�b�h�E�ϐ��́A�C���X�^���X���̌�ɑ����āu.�v�{���\�b�h���A���邢�́u.�v�{�ϐ����ŌĂяo�����Ƃɂ�藘�p���邱�Ƃ��ł���B

�u�N���X���v�^�̔z��ϐ����`���邱�Ƃ��ł���B���̏ꍇ�́A�z��ł��邱�Ƃ�錾������A�z��̊e�v�f�i���ꂪ�C���X�^���X�ɂȂ�j�ɑ΂��� new ���g���Ď��̂�^���Ȃ���΂����Ȃ��B

�N���X��[] �ϐ��� = new �N���X��[10];
for(i=0; i<10; i++) {
�ϐ���[i] = new �N���X���i�������X�g�j;
}

�������Apublic static void �Ƃ������������� main() ���\�b�h�����ƒN���X�͓��ʂȈӖ�������Bmain �ƌĂ΂�郁�\�b�h�����ƒN���X�ƁA�A�v���b�g�ƌĂ΂�� Applet �N���X���p�������N���X�́A�C���X�^���X���쐬���邱�ƂȂ��A����Ǝ��Ŏ��s���邱�Ƃ��o����B

���̃v���O�����́A�A�v���b�g�̗�ŁA��ɒ�`���� MyCanvas �N���X�̃C���X�^���X�𐶐����Ď��s���������̂ł���B�������邱�Ƃɂ���āAMyCanvas �N���X�� MyCanvas, paint ���\�b�h�����s����A�u���E�U�ɒ����`�ƕ����񂪕\�������悤�ɂȂ�B

public class Test extends Applet {
	public void init() {
		add(new MyCanvas(this.getSize()));
	}
}
class MyCanvas extends Canvas {
	MyCanvas(Dimension size) {
		this.setSize(size);
	}
	public void paint(Graphics g) {
		g.drawRect(10, 10, this.getWidth()-20, this.getHeight()-20);
		g.drawString("MyCanvas", 20, 40);
	}
}

���̃v���O�����́A���Œ�`����Ă���N���X�̕ϐ����A�C���X�^���X����炸�ɃN���X���𒼐ڎg���ČĂяo���ė��p�����ł���B���̏ꍇ�A�ϐ��͕K�� static �����̎w�肪�K�v�ł���B

class Test {
	public static void main(String[] args) {
		int n = (int)(Math.random() * 7);
		System.out.println("������ " + Days.DOTW[n] + "�j���ł�");
	}
}
class Days {
	public static String[] DOTW = {"��","��","��","��","��","��","�y"};
}

�N���X�̃C���X�^���X���I�u�W�F�N�g�i���́j�ƌĂ΂�A�I�u�W�F�N�g�̋@�\��g�ݍ��킹�ăv���O�������ł�������Ƃ��납��AJava ���I�u�W�F�N�g�w�������ƌĂ΂�Ă���B

��� MyApplet �N���X�ɂ���擪�� public �́A�A�N�Z�X�C���q�ƌĂ΂�A���̃p�b�P�[�W������A�N�Z�X�”\�ł��邱�Ƃ������B�������邱�ƂŁA���s���ɍŏ��Ɏ��s�����N���X�ł��邱�Ƃ��w�肵�Ă���BDays �N���X�� DOTW �t�B�[���h�̐擪�ɂ��� public �A�N�Z�X�C���q�́A�p�b�P�[�W���̑��̃N���X����A�N�Z�X�o���邱�Ƃ��w�肵�Ă���B

�R���X�g���N�^

�N���X�̃��\�b�h�Ƃ��āA�R���X�g���N�^�ƌĂ΂��N���X���Ɠ������O�����“��ʂȃ��\�b�h������B�N���X�̃C���X�^���X�������Ƃ��ɂ��̃��\�b�h���Ăяo����Ď��s�����B����΁A��������Ƃ��W�߂����́A�ƌ����Ă悢�B�R���X�g���N�^�̓��\�b�h�Ȃ̂ŁA�������X�g���w��ł���B�C���X�^���X�����Ƃ��́A���̈������X�g�ɑΉ�������������w�肵�Ȃ���΂����Ȃ��B�߂�l��ݒ�ł��Ȃ��̂ŁA���\�b�h���̑O�Ɂu�߂�l�̌^�v�͏����Ȃ��B

�����ݒ肷��ϐ��̉��ϐ��Ƃ��āA�����ϐ������g�p���邱�Ƃ�����B���̏ꍇ�A�ϐ��ɒl��ݒ肷�������̍��ӂƉE�ӂ��������O�ɂȂ��č�������B���̂킩��ɂ���������邽�߂Ɂi���̃N���X�́A�Ƃ����Ӗ��Łjthis �L�[���[�h������B�ϐ����� x �Ƃ����Ƃ��Athis.x = x; �Ə����ƁA���ϐ��� x �̒l�����̃N���X�̕ϐ� x �ɑ������A�Ƃ������߂ɂȂ�B

�������X�g�̈قȂ�A�����̃R���X�g���N�^���`���邱�Ƃ��ł���B������i���\�b�h�̏ꍇ�Ɠ����悤�Ɂj�R���X�g���N�^�̃I�[�o�[���[�h�Ƃ����B

��ɒ�`���� MyCanvas �ł́A�L�����o�X�̑傫�������߂� setSize �Ƃ����A�e�N���X�Œ�`����Ă��郁�\�b�h�����s���āA�����œn���ꂽ�傫����ݒ肵�Ă���B

�J�v�Z����

�ϐ��̐錾���A���邢�̓��\�b�h�̏C���q�Ƃ��� private ���w�肷��ƁA���̕ϐ��A���邢�̓��\�b�h�́A���̃N���X�̓��������ł����Q�Ƃł��Ȃ��Ȃ�B�ϐ��� private �w�肷�邱�ƂŁA���̕ϐ����e������ɕύX�ł��Ȃ��悤�ɂ��邱�Ƃ��ł��A�f�[�^��ی삷�邱�Ƃ��ł���B�i���̃N���X�����ł����Ӗ��̂���j���\�b�h�� private �w�肷�邱�ƂŁA�N���X�̃A�N�Z�X�‹���P�������邱�ƂɂȂ�A�g�����肪���シ�邱�Ƃ����҂ł���B���̂悤�ȍl�����̓J�v�Z�����ƌĂ΂��B

�f�[�^�^��`

���\�b�h�̂Ȃ��N���X�́A���R�[�h�Ƃ��Ă΂�A�V�����f�[�^�^���`���邽�߂Ɏg����B���Ƃ��΁A���O�A�Z���A�E�ƂȂǂ̌l�f�[�^����‚̃N���X�ɂ܂Ƃ߁A��‚̖��O�ŎQ�Ƃł���悤�ȏꍇ�ł���B

class PersonalRecord {
String name, address, tel, occupation;
}

�g���ꍇ�́F
class ... {
PersonalRecord taro = new PersonalRecord();
...
System.out.println(taro.name + " �̓d�b�ԍ��� " + taro.tel);
}

���\�b�h�������Ă��A�R���X�g���N�^�����A�Ƃ����N���X������B�Ⴆ�΁A����3�����̓_�Ƃ����f�[�^�^���`�����N���X�̗�ł���B

class Point3D {
int x, y, z;
Point3D(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}
}

�g���ꍇ�́F
class ... {
Point3D origin = new Point3D(0,0,0);
...
}

�C���^�[�t�F�[�X

Java �͋�����Ƃɂ���đ傫�ȃv���O��������邱�Ƃ�z�肵�Ă���A���̍�Ɗ‹��𐮂��邱�Ƃ��l���ăN���X�ƌp���Ƃ����d�g�݂�������B���̖ړI�ŁA�����̔ėp�N���X���V�X�e���ɂ���Ē񋟂���Ă���̂ŁA�����𗘗p���邱�ƂŁA�v���O�����̘g�g�݂��W��������A��Ƃ������I�ɍs����悤�ɍH�v����Ă���B����ɁA�p���ɂ��A���ׂĂ̍�Ƃ��P����n�߂邱�ƂȂ��A�K�v�ȃp�[�c��g�ݍ��킹�邱�Ƃőf�����ڕW��B�����邱�Ƃ��o����悤�ɂȂ��Ă���B

�������A�p���Ƃ����֗��Ȏd�g�݂ɂ͕����̐e�N���X���p�����邱�Ƃ��o���Ȃ��A�Ƃ����傫�Ȑ��񂪂���B���̐�����Ȃ������߂̍H�v���C���^�[�t�F�[�X�ł���B�C���^�[�t�F�[�X�̓N���X�̈���ŁA�ϐ��̐錾���ƃ��\�b�h����Ȃ邪�A���̂悤�Ȑ��񂪂���B

3�Ԗڂ�4�Ԗڂ̐��񂩂�A�C���^�[�t�F�[�X�����L����΁A�������O���g���č�Ƃ���‹����������ƂɂȂ�B�e�N���X�ƈقȂ�A�C���^�[ �t�F�[�X�͕����𓯎��Ɏ������邱�Ƃ��o����̂ŁA��ƖړI���ɍ쐬���Ă����ΊǗ����₷���Ȃ�B���̃v���O�����́A�O�ɏo�����N���X�̃t�B�[���h�𒼐� �Q�Ƃ������A�C���^�[�t�F�[�X���g���ď������������̂ł���B�ϐ��̑����Ƃ��ĕK�v������ public static ���s�v�ɂȂ��Ă���B

class Test implements Days {
	public static void main(String[] args) {
		int n = (int)(Math.random() * 7);
		System.out.println("������ " + Days.DOTW[n] + "�j���ł�");
	}
}
interface Days {
	String[] DOTW = {"��","��","��","��","��","��","�y"};
}

�N���X�Ɠ��l�A�l�X�Ȕėp�C���^�[�t�F�[�X���V�X�e���ɂ���ėp�ӂ���Ă���B���́A�{�^���N���b�N�̏����v���O�����Ƃ��� ActionListener �ƌĂ΂��C���^�[�t�F�[�X���������āAactionPerformed ���\�b�h���I�[�o�[���C�h������ł���B�{�^�����N���b�N����� actionPerformed ���\�b�h�����s����A�{�^�������ʂ���ƁA�ˋ�̗j���𐶐����ĕ\������B

public class Test extends Applet implements ActionListener, Days{
	JLabel lb = new JLabel("...");
	public void init() {
		JButton bt =  new JButton("�ˋ�̗j��");
		bt.addActionListener(this);
		add(bt);
		add(lb);
	}
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand() == "�ˋ�̗j��") {
			int n = (int)(Math.random() * 7);
			lb.setText("������ " + Days.DOTW[n] + "�j���ł�");		
		}
	}
}
interface Days {
	String[] DOTW = {"��","��","��","��","��","��","�y"};
}