S-JIS[2010-10-23/2011-09-18] �ύX����

Scala�p�b�P�[�W

Scala�̃p�b�P�[�W�̃����B


package��

�����̃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����B
foo.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

import��

���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
�uimport runtime.RichInt�v��
�uimport 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

��F

def nowString() = {
  import java.util.Date
  new Date().toString()
}
scala> nowString()
res9: java.lang.String = Sun Oct 24 03:06:29 JST 2010

�Öق�import����Ă���p�b�P�[�W�E�N���X

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 �@

�A�N�Z�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


Scala�ڎ��֖߂� / �Z�p�����֖߂�
���[���̑��M��F�Ђ�����

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@

�@