码迷,mamicode.com
首页 > 编程语言 > 详细

Java知多少(26)源文件的声明规则

时间:2015-04-05 18:49:49      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则:

  • 一个源文件中只能有一个public类。
  • 一个源文件可以有多个非public类。
  • 源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。
  • 如果一个类定义在某个包中,那么package语句应该在源文件的首行。
  • 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
  • import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。
  • 类有若干种访问级别,并且类也分不同的类型:抽象类和final类等。这些将在后续章节介绍。
  • 除了上面提到的几种类型,Java还有一些特殊的类,如内部类、匿名类。 

一个简单的例子

在该例子中,我们创建两个类 Employee 和 EmployeeTest,分别放在包 p1 和 p2 中。

Employee类有四个成员变量,分别是 name、age、designation和salary。该类显式声明了一个构造方法,该方法只有一个参数。

在Eclipse中,创建一个包,命名为 p1,在该包中创建一个类,命名为 Employee,将下面的代码复制到源文件中:

 1 package p1;
 2 public class Employee{
 3     String name;
 4     int age;
 5     String designation;
 6     double salary;
 7     // Employee 类的构造方法
 8     public Employee(String name){
 9         this.name = name;
10     }
11     // 设置age的值
12     public void empAge(int empAge){
13         age =  empAge;
14     }
15     // 设置designation的值
16     public void empDesignation(String empDesig){
17         designation = empDesig;
18     }
19     // 设置salary的值
20     public void empSalary(double empSalary){
21         salary = empSalary;
22     }
23     // 输出信息
24     public void printEmployee(){
25         System.out.println("Name:"+ name );
26         System.out.println("Age:" + age );
27         System.out.println("Designation:" + designation );
28         System.out.println("Salary:" + salary);
29     }
30 }

程序都是从main方法开始执行。为了能运行这个程序,必须包含main方法并且创建一个对象。


下面给出EmployeeTest类,该类创建两个Employee对象,并调用方法设置变量的值。

在Eclipse中再创建一个包,命名为 p2,在该包中创建一个类,命名为 EmployeeTest,将下面的代码复制到源文件中:

 1 package p2;
 2 import p1.*;
 3 public class EmployeeTest{
 4     public static void main(String args[]){
 5         // 创建两个对象
 6         Employee empOne = new Employee("James Smith");
 7         Employee empTwo = new Employee("Mary Anne");
 8         // 调用这两个对象的成员方法
 9         empOne.empAge(26);
10         empOne.empDesignation("Senior Software Engineer");
11         empOne.empSalary(1000);
12         empOne.printEmployee();
13         empTwo.empAge(21);
14         empTwo.empDesignation("Software Engineer");
15         empTwo.empSalary(500);
16         empTwo.printEmployee();
17     }
18 }

编译并运行 EmployeeTest 类,可以看到如下的输出结果:

Name:James Smith
Age:26
Designation:Senior Software Engineer
Salary:1000.0
Name:Mary Anne
Age:21
Designation:Software Engineer
Salary:500.0

 系列文章:

Java知多少(1)语言概述

Java知多少(2)虚拟机(JVM)以及跨平台原理

Java知多少(3) 就业方向

Java知多少(4)J2SE、J2EE、J2ME的区别

Java知多少(5) Java开发环境的搭建

Java知多少(6)第一个程序示例

Java知多少(7)类与对象

Java知多少(8)类库及其组织结构

Java知多少(9) import及Java类的搜索路径

Java知多少(10)数据类型及变量

Java知多少(11)数据类型转换

Java知多少(12)运算符

Java知多少(13)流程控制

Java知多少(14)数组

Java知多少(15)字符串

Java知多少(16)StringBuffer与StringBuider

Java知多少(17)强调一下编程风格

Java知多少(18)类的定义及其实例化

Java知多少(19)访问修饰符(访问控制符)

Java知多少(20)变量的作用域

Java知多少(21)this关键字详解

Java知多少(22)方法重载

Java知多少(23)类的基本运行顺序

Java知多少(24)包装类、拆箱和装箱详解

Java知多少(25)再谈Java包

Java知多少(26)源文件的声明规则

Java知多少(26)源文件的声明规则

标签:

原文地址:http://www.cnblogs.com/Coda/p/4394458.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!