`
ChiLHuo
  • 浏览: 10960 次
社区版块
存档分类
最新评论

JAVA基本概念

    博客分类:
  • java
 
阅读更多

<div class="iteye-blog-content-contain" style="font-size: 14px"><div class="Section0">
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; text-align: left;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">关于类:</span></p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">一般情况下,一个编译单元(源文件)声明一个类(或接口),如果类的访问修饰符为<span style="font-family: 'Times New Roman';">public</span><span style="font-family: 宋体;">,则源文件的文件名必须和文件中声明的</span><span style="font-family: 'Times New Roman';">public</span><span style="font-family: 宋体;">类的名称保持一致。在一个编译单元中,只能声明一个</span><span style="font-family: 'Times New Roman';">public</span><span style="font-family: 宋体;">类(与</span><span style="font-family: 'Times New Roman';">java</span><span style="font-family: 宋体;">源文件名相同);如果在同一个源文件中声明多个类,其他类不能为</span><span style="font-family: 'Times New Roman';">public</span><span style="font-family: 宋体;">。</span></span></p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">类是<span style="font-family: 'Times New Roman';">java</span><span style="font-family: 宋体;">语言的核心,</span><span style="font-family: 'Times New Roman';">java</span><span style="font-family: 宋体;">的一切类型都是类,所有的语句都必须位于类内,</span><span style="font-family: 'Times New Roman';">java</span><span style="font-family: 宋体;">类库包含大量解决通用问题的类,一般可以通过创建自定义类和使用</span><span style="font-family: 'Times New Roman';">java</span><span style="font-family: 宋体;">类库来解决实际问题。</span></span></p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">类是一个数据结构,类定义数据类型的数据(字段)和行为(方法)。对象是基于类的具体实体(类的实例);</span></p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">用<span style="font-family: 'Times New Roman';">public</span><span style="font-family: 宋体;">修饰符声明的类为公共类,可以被所有其他类访问。如果被同一个包中的其他类访问,则可以直接引用;如果被其他包中的类引用,则需要通过</span><span style="font-family: 'Times New Roman';">import</span><span style="font-family: 宋体;">导入该公共类,或者通过包含包名的完全限定名称进行访问。如果没有使用修饰符</span><span style="font-family: 'Times New Roman';">public</span><span style="font-family: 宋体;">,则所声明的类为友好类(包可访问性)。友好类只能被同一个包中的其他类访问;如果一个类中引用其他包中的友好类,则会产生编译错误。</span></span></p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">关于包:</span></p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="mso-spacerun: 'yes'; font-size: 10.5000pt; font-family: '宋体';">在编译单元中定义类或接口时,可以声明其所在的包,<span style="font-family: 'Times New Roman';">java</span><span style="font-family: 宋体;">程序中,类型由指示逻辑层次结构的完全限定名描述(</span><span style="font-family: 'Times New Roman';">java.util.Date</span><span style="font-family: 宋体;">,表示</span><span style="font-family: 'Times New Roman';">java</span><span style="font-family: 宋体;">包的子包</span><span style="font-family: 'Times New Roman';">util</span><span style="font-family: 宋体;">中的</span><span style="font-family: 'Times New Roman';">Date</span><span style="font-family: 宋体;">类)。一般情况下,包对应于文件系统的目录,子包对应相应目录下的子目录,而类文件则对应目录下的字节码文件。</span></span></p>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;" data-mce-mark="1">引用一个外部包的<span style="font-size: 10.5pt; font-family: 宋体;" data-mce-mark="1">public</span><span style="font-size: 10.5pt; font-family: 宋体;" data-mce-mark="1">类,可以先导入该包(</span><span style="font-size: 10.5pt; font-family: 宋体;" data-mce-mark="1">import</span><span style="font-size: 10.5pt; font-family: 宋体;" data-mce-mark="1">),再将该类实例化,就可以使用实例化后的对象的成员。例如:</span></span></p>
<pre name="code" class="java">package test1;
public class HelloWorld {
public void sayhello(){
System.out.println("Hello World!");
}
}</pre>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;" data-mce-mark="1"><span style="font-size: 10.5pt; font-family: 宋体;" data-mce-mark="1"></span></span></p>
<pre name="code" class="java">package test2;
import test1.*;
public class GetHelloWorld{
  Public static void main(String[] args){
  HelloWorld sayhi = new HelloWorld();
  Sayhi.sayhello();
  }
}</pre>
<p class="p0" style="text-indent: 21pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;" data-mce-mark="1"><span style="font-size: 10.5pt; font-family: 宋体;" data-mce-mark="1">&nbsp;<br /></span></span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;">&nbsp;</p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">关于类的成员<span style="font-family: 'Courier New';">:</span></span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">类的成员或者是静态成员,或者是实例成员。一般而言,静态成员属于类,又称为类成员,被这个类的所有实例所共享;而实例成员属于对象,每一个对象都有实例成员的不同副本。当类成员声明中含有<span style="font-family: 'Courier New';">static</span><span style="font-family: 宋体;">修饰符时,它声明为静态成员,否则为实例成员。</span></span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">静态成员:</span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">(1)</span><span style="font-size: 10.5pt; font-family: 宋体;">静态成员一般通过类名来引用:类名<span style="font-family: 'Courier New';">.</span><span style="font-family: 宋体;">静态字段名。如果使用对象访问静态成员,则会产生编译警告。</span></span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">(2)</span><span style="font-size: 10.5pt; font-family: 宋体;">一个静态字段共享同一个存储位置。(恒只有一个副本)</span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">(3)</span><span style="font-size: 10.5pt; font-family: 宋体;">静态函数成员(方法或构造方法)属于类的成员,故在其代码体内不能直接引用实例成员,否则将产生编译错误。</span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">实例成员:</span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">(1)</span><span style="font-size: 10.5pt; font-family: 宋体;">实例成员必须通过对象实例来引用:对象<span style="font-family: 'Courier New';">.</span><span style="font-family: 宋体;">实例字段名。</span></span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">(2)</span><span style="font-size: 10.5pt; font-family: 宋体;">实例字段属于类的实例。每当创建一个类的实例时,都在内存中为该实例字段开辟一块存储区域。(多个副本)</span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">(3)</span><span style="font-size: 10.5pt; font-family: 宋体;">实例函数成员作用于类的给定实例,故在其代码体内既可以使用实例成员,也可以直接引用类的静态成员。</span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt;">&nbsp;</p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">关于类成员访问修饰符:</span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">public<span style="font-family: 宋体;">:访问不受限制(</span><span style="font-family: 'Courier New';">1</span><span style="font-family: 宋体;">同一个类,</span><span style="font-family: 'Courier New';">2</span><span style="font-family: 宋体;">同包,</span><span style="font-family: 'Courier New';">3</span><span style="font-family: 宋体;">不同包子类,</span><span style="font-family: 'Courier New';">4</span><span style="font-family: 宋体;">不同包非子类)</span></span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">protected<span style="font-family: 宋体;">:只能被类本身、从此类派生的子类,以及同一个包中定义的类访问(</span><span style="font-family: 'Courier New';">123</span><span style="font-family: 宋体;">)。</span></span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">private<span style="font-family: 宋体;">:只能被他所定义的类访问(</span><span style="font-family: 'Courier New';">1</span><span style="font-family: 宋体;">)。</span></span></p>
<p class="p0" style="text-indent: 21.0000pt; margin-bottom: 0pt; margin-top: 0pt;"><span style="font-size: 10.5pt; font-family: 宋体;">默认:如果类成员没有指定访问修饰符,则默认为包级访问(友好访问级),只能被类本身以及同一个包中定义的类访问(<span style="font-family: 'Courier New';">12</span><span style="font-family: 宋体;">)。</span></span></p>
</div></div>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics