⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java03_04.htm

📁 JAVA的课件
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Java语言教程</title>
</head>

<body background="Bg.gif">

<p align="center"><b><font size="5">3.4 成员变量的定义与使用</font></b></p>    
    
<p align="left">将<u>类体中</u>用来定义类状态的变量称为类的成员变量。语法形式如下:</p>    
<p align="left">[变量修饰符] 类型说明符 变量名</p>    
<p align="left">注意:</p>    
<ul>    
  <li>    
    <p align="left"> 成员变量的类型可以是Java中的任意数据类型,包括简单类型、数组、类和接口。</li>    
  <li>    
    <p align="left">在一个类中,成员变量应该是唯一的,但是成员变量的名字可以和类中某个方法的名字相同,例如:&nbsp;<br>    
    class Point{&nbsp;<br>    
           int x,y;&nbsp;<br>    
    &nbsp;int x(){&nbsp;<br>    
    &nbsp;&nbsp; return x;&nbsp;<br>    
    &nbsp;}&nbsp;<br>    
    }&nbsp;<br>    
     其中,方法x()和变量x具有相同的名字,但我们不赞成这样写。</li>    
  <li>    
    <p align="left">类的成员变量和在方法中所声明的局部变量的命名规则相同,但作用域是不同的,成员变量的作用域是整个类,而局部变量的作用域只是方法内部。&nbsp;</li>    
</ul>    
<p align="left">例3.2 class Cuber{<br>    
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; double width,height;<br>    
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int number;<br>    
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>    
<p align="left">成员变量的修饰符指定了它的属性,包括:</p>    
<ol>    
  <li>    
    <p align="left">成员变量的访问权限<br>    
    ·公共(public)变量——可以被任何类所访问。<br>  
    例3.3<br>  
    &nbsp;class A{<br>    
    &nbsp;&nbsp; public int x=10;<br>    
    &nbsp;}<br>    
    &nbsp;class B{<br>    
    &nbsp; void change(){&nbsp;<br>    
    &nbsp;&nbsp; A a=new A();<br>    
    &nbsp;&nbsp; a.x=20; //正确<br>   
    &nbsp; }<br>    
    &nbsp;}&nbsp;<br>    
    ·私有(private)变量——只允许在本类的内部访问。<br>  
    例3.4<br>  
    &nbsp;class A{<br>    
    &nbsp;&nbsp;&nbsp; private int x=10;<br>    
    &nbsp;&nbsp;&nbsp; void change(){<br>    
    &nbsp;&nbsp;&nbsp;&nbsp; x=20; //合法<br>    
    &nbsp;&nbsp; }<br>    
    &nbsp;}<br>    
    &nbsp;class B{<br>    
    &nbsp; void change(){&nbsp;<br>    
    &nbsp;&nbsp;&nbsp; A a=new A();<br>    
    &nbsp; &nbsp; a.x=20; //非法<br>    
    &nbsp; }<br>    
    &nbsp;}&nbsp;<br>    
    ·保护(protected)变量——除了允许本类和它的子类访问以外,还允许同一个包中所有类访问,如:<br>   
    例3.6<br>  
    package one;<br>  
    &nbsp;class A{<br>    
    &nbsp;&nbsp;protected int x=10;<br>    
    &nbsp;&nbsp; void change(){<br>    
    &nbsp;&nbsp;&nbsp;&nbsp; x=20; //合法<br>    
    &nbsp;&nbsp; }<br>    
    &nbsp;}<br>    
    package one;<br>  
    &nbsp;class B{ //它也在包&quot;one&quot;中<br>   
    &nbsp; void change(){&nbsp;<br>    
    &nbsp;&nbsp; A a=new A();<br>    
    &nbsp;&nbsp; a.x=20; //合法<br>   
    &nbsp; }<br>    
    &nbsp;}&nbsp;<br>    
    &nbsp;class C <b>extends A</b>{ //C是A的子类,不一定在包&quot;one&quot;中<br>  
    &nbsp; void change1(){&nbsp;<br>  
    &nbsp;&nbsp;&nbsp;&nbsp; A a=new A();<br>    
    &nbsp; &nbsp;&nbsp; a.x=20; //合法,改变的是对象a的x值<br>  
    &nbsp;&nbsp;}<br>  
    &nbsp;void change2(){<br>  
    &nbsp; x=30; //这也合法,改变的是类C从A中所继承的x的值<br>  
    &nbsp; }&nbsp;<br>   
    }<br>  
    ·缺省变量<br>  
    如果在变量前不加任何访问权修饰符,它就具有缺省的访问控制特性,也称为friendly变量,它允许在同一个包中的其它类访问,如:<br>  
    例3.7<br>  
    package one;<br>  
    &nbsp;class A{<br>    
    &nbsp;&nbsp;int x=10;<br>   
    &nbsp;&nbsp; void change(){<br>    
    &nbsp;&nbsp;&nbsp;&nbsp; x=20; //合法<br>    
    &nbsp;&nbsp; }<br>    
    &nbsp;}<br>    
    package one;<br>  
    &nbsp;class B{ //它也在包&quot;one&quot;中<br>   
    &nbsp; void change(){&nbsp;<br>    
    &nbsp;&nbsp; A a=new A();<br>    
    &nbsp;&nbsp; a.x=20; //合法<br>   
    &nbsp; }<br>    
    &nbsp;}&nbsp;<br>    
    &nbsp;class C <b>extends A</b>{ //C是A的子类,假定它不在包&quot;one&quot;中<br>  
    &nbsp; void change1(){&nbsp;<br>  
    &nbsp;&nbsp;&nbsp;&nbsp; A a=new A();<br>    
    &nbsp; &nbsp;&nbsp; a.x=20; //非法<br>  
    &nbsp;&nbsp;}<br>  
    }   
  </li>   
  <li>   
    <p align="left">实例变量<br>  
    上述所有的变量都是实例变量,它们只有在类被实例化后(也即创建了对应的对象后)才能使用,不同的对象拥有不同的实例变量。<br>  
    例3.8<br>  
    class A(){<br>  
    &nbsp;int x;<br>  
    }<br>  
    class B(){ //假定B和A在同一个包中<br>  
    &nbsp;public static void main(String argv[]){<br>  
    &nbsp; A one,two;<br>  
    &nbsp; one=new A();<br>  
    &nbsp; two=new A();<br>  
    &nbsp; one.x=10;<br>  
    &nbsp; two.x=20;<br>  
    &nbsp; System.out.println(&quot;one.x=&quot;+one.x+&quot;,   
    two.x=&quot;+two.x);<br>  
    &nbsp;}<br>  
    }   
  </li>   
  <li>   
    <p align="left">静态(static)变量<br>  
    静态变量用static来修饰,它和实例变量不同,它不属于任何一个类的实例,也就是说它属于全体类公有。而且不需要创建一个类就可以使用静态变量,它的初始化在类的实例化之前。<br>  
    例3.9<br>  
    class common{<br>  
    &nbsp;public static int pass=60; //我们一般将static声明成public访问类型<br>  
    }<br>  
    class A{&nbsp;<br>  
    &nbsp;public static void main(String argv[]){<br>  
    &nbsp; System.out.println(&quot;common.pass=&quot;+common.pass);<br>  
    &nbsp;}<br>  
    }   
  </li>   
  <li>   
    <p align="left">常量(final)<br>  
    final来修饰上述的变量,那么它的值再初始化后就不可改变,成为常量。它通常和static联合使用。   
  </li>   
</ol>   
<p align="left"><font size="3"><a href="index.htm">回目录</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;      
<a href="java03_02.htm">上一课</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="java03_05.htm">              
下一课</a></font>           
</p>     
     
</body>     
     
</html>     


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -