S-JIS[2010-10-23/2011-09-18] �ύX����
Scala�̃p�b�P�[�W�̃����B
|
|
|
�����̃N���X���p�b�P�[�W�ɏ���������ׂ�package�����g�p����B
�i��Java��package���j
| Scala | Java | ���l |
|---|---|---|
package foo.bar
class Hoge { }
|
package foo.bar;
class Hoge { }
|
foo.bar.Hoge�N���X����`�����B |
package foo {
package bar {
class Hoge { }
}
}
|
�@ | Scala��package�ł́A�g���ʁu{}�v�ł������ēK�p�͈͂m�ɂ��邱�Ƃ��o����Bfoo.bar.Hoge�N���X����`�����B |
package foo {
package bar {
class Hoge { }
}
package zzz {
class Fuga { }
}
}
|
�@ | ���������āA�قȂ�p�b�P�[�W�̃N���X����̃\�[�X�t�@�C�����ɍ��݂����邱�Ƃ��o����B foo.bar.Hoge�N���X�� foo.zzz.Fuga�N���X����`�����B |
package foo.bar
class Hoge { }
package sub {
class Sub { }
}
|
�@ | foo.bar.Hoge�N���X�� foo.bar.sub.Sub�N���X����`�����B |
package foo
package bar
class Hoge { }
|
�@ | foo.bar.Hoge�N���X����`�����B �iScala2.8�ȍ~�炵���j |
���p�b�P�[�W�̃N���X���A���S�C�����邱�ƂȂ��P���ȃN���X���݂̂ŋL�q�ł���悤�ɂ���B
�i��Java��impot���j
| Scala | Java | ���l |
|---|---|---|
import java.util.Date |
import java.util.Date; |
��̃N���X�������C���|�[�g����B |
import java.util.Date, java.util.Calendar |
�@ | �J���}�ŋ�邱�Ƃɂ����1�s�ŕ����̃C���|�[�g��������B[2011-01-09] |
import java.util._ |
import java.util.*; |
Scala�ł́A���C���h�J�[�h�́u_�v�ŕ\���B |
import java.util.{ List, Map }
|
import java.util.List; import java.util.Map; |
Scala�ł́A����p�b�P�[�W���̕����̃N���X���܂Ƃ߂Ĉ�s�Ŏw��ł���B |
import java.util.{ Map => JavaMap }
import java.util.{ List => JavaList, Map => JavaMap }
|
�@ | �N���X��ʂ̖��O�ŃC���|�[�g����B |
import java.util.{ Date => _, _ }
|
�@ | �ʖ����u_�v�ɂ���ƁA���̃N���X�̓C���|�[�g����Ȃ��Ȃ�B �ʓr�u_�v�����w�肷��ƁA����ȊO�̃N���X�͑S�ăC���|�[�g�����B ���L�̗�ł́ADate�ȊO��java.util�̃N���X���S�ăC���|�[�g�����B |
import java.lang.System.currentTimeMillis import java.lang.System._ |
import static java.lang.System.currentTimeMillis; import static java.lang.System.*; |
���\�b�h���C���|�[�g����B Java��static�C���|�[�g�́AScala�ł�static�����Ŏw�肷��B |
import runtime.RichInt |
�@ | Scala�ł́A���݂̃p�b�P�[�W����̑��Ύw�肪�o����B[2011-01-15] ���݂̃p�b�P�[�W���uscala�v�̂Ƃ��A �u import runtime.RichInt�v���u import scala.runtime.RichInt�v�Ɠ����B |
import java.io import io.IOException |
�@ | �C���|�[�g�����I�u�W�F�N�g�i�p�b�P�[�W���̈ꕔ���I�u�W�F�N�g�Ƃ��ĔF�������j����̑��Ύw�肪�o����B[2011-01-18] |
import _root_.scala.runtime.RichInt |
�@ | Scala�ł͌��݂̃p�b�P�[�W����̑��Ύw�肪�o���邪�A �����I�ɐ�Ύw��i�擪����̎w��j������Ƃ��ɂ́u_root_�v����n�߂�B[2011-01-09] |
Java�̏ꍇ�Aimport���̓\�[�X�t�@�C���̐擪�ɏ����K�v������i�擪�ɂ��������Ȃ��j���A
Scala�ł́A�u���b�N�̒��ɋL�q���āA���̃X�R�[�v���Ɍ��肷�邱�Ƃ��o����B
def nowString() = {
import java.util.Date
new Date().toString()
}
scala> nowString() res9: java.lang.String = Sun Oct 24 03:06:29 JST 2010
Scala�ł́A�ȉ��̃p�b�P�[�W�E�N���X���ÖقɁi�����I�Ɂj�C���|�[�g����Ă���B
| ���O | �p�r | ���l |
|---|---|---|
| scala._ | Scala�̊�{�N���X | �@ |
| scala.Predef._ | �ÖقɎg�p�ł��������`����Ă���V���O���g���I�u�W�F�N�g | Java��static�C���|�[�g�ɑ�����������ŃC���|�[�g�����B Predef�ɒ�`����Ă��郁�\�b�h�����Ƃ��āi�I�u�W�F�N�g���̎w��Ȃ��Łj�g����悤�ɂȂ�B |
| java.lang._ | Java�̊�{�N���X | �@ |
Scala���A�N�Z�X�C���q�ׂ̍��������̓p�b�P�[�W�Ɗ֘A���Ă���B[2010-12-19]
�i��Java�̃A�N�Z�X�����j
| �@ | public | protected [�p�b�P�[�W] |
private [�p�b�P�[�W] |
protected | protected [this] |
private | private [this] |
|---|---|---|---|---|---|---|---|
| ���C���X�^���X | �� | �� | �� | �� | �� | �� | �� |
| ���N���X�i�ʃC���X�^���X�j | �� | �� | �� | �� | �~ | �� | �~ |
| �T�u�N���X�i�ʃp�b�P�[�W�j | �� | �� | �~ | �� | �� | �~ | �~ |
| ���W�N���X�i�w��p�b�P�[�W�j | �� | �� | �� | �~ | �~ | �~ | �~ |
| ���W�N���X�i�ʃp�b�P�[�W�j | �� | �~ | �~ | �~ | �~ | �~ | �~ |
package sample {
package pack1 {
// ���N���X
class A1 {
val a1pub = 11
protected val a1pro = 12
private val a1pri = 13
protected[this] val a1prot = 14
private[this] val a1prit = 15
protected[pack1] val a1pro1 = 16
private[pack1] val a1pri1 = 17
def aaa() = {
// ���N���X�E�ʃC���X�^���X
val a1 = new A1()
a1.a1pub
a1.a1pro
a1.a1pri
//x a1.a1prot
//x a1.a1prit
a1.a1pro1
a1.a1pri1
}
}
// ���W�N���X�E�w��p�b�P�[�W
class B1 {
def bbb() = {
val a1 = new A1()
a1.a1pub
//x a1.a1pro
//x a1.a1pri
//x a1.a1prot
//x a1.a1prit
a1.a1pro1
a1.a1pri1
}
}
}
// �ʃp�b�P�[�W
package pack2 {
// �T�u�N���X
class A2 extends pack1.A1 {
def a2() = {
a1pub
a1pro
//x a1pri
a1prot
//x a1prit
a1pro1
//x a1pri1
}
}
// ���W�N���X�E�ʃp�b�P�[�W
class C2 {
def ccc() = {
val a1 = new pack1.A1()
a1.a1pub
//x a1.a1pro
//x a1.a1pri
//x a1.a1prot
//x a1.a1prit
//x a1.a1pro1
//x a1.a1pri1
}
}
}
}
�Ȃ��A���̗�Łuprivate[sample]�v�uprotected[sample]�v�Ƃ���ƁAsample�p�b�P�[�W�����ƁAsample.pack2�isample�z���̃p�b�P�[�W�j���A�N�Z�X�\�Ȕ͈͂ɂȂ�B
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@
�@