三. Java类与对象9. 源文件的声明规则

当在一个源文件中定义多个类,并且还有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 www.xingcaiyule.net ("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

时间: 2024-10-08 08:17:06

三. Java类与对象9. 源文件的声明规则的相关文章

三. Java类与对象8.再谈Java包

在Java中,为了组织代码的方便,可以将功能相似的类放到一个文件夹内,这个文件夹,就叫做包. 包不但可以包含类,还可以包含接口和其他的包. 目录以"\"来表示层级关系,例如 E:\Java\workspace\Demo\bin\p1\p2\Test.java. 包以"."来表示层级关系,例如 p1.p2.Test 表示的目录为 \p1\p2\Test.class. 如何实现包 通过 package 关键字可以声明一个包,例如:    package p1.p2;必须

Scal(三)——类与对象

Scala快速入门(三)--类与对象 一.类 这边类的模板如下,和Java很像 object a { def main(args: Array[String]): Unit = { val person=new Person println(person.name+" "+person.age) } } class Person{ var name:String = "steve yu" var age = 10 } 遇到不确定的成员属性,最好不要赋值null,可赋

java类,对象,方法

1,类和对象   在面向对象的概念当中,类(class)是既包括数据又包括作用于数据的一组操作的封装体.类的数据称为成员变量,类对数据的操作称为成员方法.成员变量反映类的状态和特征,成员方法反映类的行为和能力.类的成员变量和方法统称为类的成员.   对象(Object)是类的实例(instance).对象是动态的,拥有生命周期,都会经历一个从创建.运行到消亡的过程.对象与类的关系就像变量与数据类型一样.   类声明 { 修饰符 } class <Classname> { extends <

Java类与对象的课后练习

Java类与对象的课后练习编程题(java2实用教程P111) 这章内容自学完了,在做教材课后其他练习题的时候(只要自己仔细)都没啥问题,但在做最后一道上机编程题的时候问题出现了,在阅读题目的时候自己能感受到的是这道题不难(的确也不难),我也很快写了出来,但运行程序的时候,结果一直不正确,最后改来改去都不对,思路是对的,分步执行的时候也感觉是有个地方出了问题但就是揪不出来,最后又把课本的前面的例子反复的看对比,最后找到了问题: System.out.println("cpu的速度:"+

java类与对象的区别

java类与对象的区别是个老生常谈的问题,刚开始学java的时候就开始接触类和对象,今天来总结一下他们之间的区别. 首先讲讲class和object的区别,其实就是一句话:object是所有class的父类,所有class类都默认继承object. java中类是对一类"事物"的属性和行为一种抽象,比如人类就可以定义为一个Person类: public class Person { public int age;//年龄 public String name;//姓名 public i

有关java类、对象初始化的话题,从一道面试题切入

最近在整理东西时,刚好碰到以前看的一道有关java类.对象初始化相关题目,觉得答案并不是非常好(记忆点比较差,不是很连贯).加上刚好复习完类加载全过程的五个阶段(加载-验证-准备-解析-初始化),所以如果周志明大大诚不我欺的话,无论是类加载过程.还是实例化过程的顺序我都已经了然于心了才对. 一道面试题 标题:2015携程JAVA工程师笔试题(基础却又没多少人做对的面向对象面试题) 地址:https://zhuanlan.zhihu.com/p/25746159 该题代码如下: public cl

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

当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则: 一个源文件中只能有一个public类. 一个源文件可以有多个非public类. 源文件的名称应该和public类的类名保持一致.例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java. 如果一个类定义在某个包中,那么package语句应该在源文件的首行. 如果源文件包含import语句,那么应该放在package语句和类定义之间.如果没有package语

java总结第三次//类和对象2、3

四.类和对象2 主要内容:Java类的继承.方法的重写.覆盖.访问控制.super 关键字.多态性及其应用 1.继承 要求:Java只支持单继承,不允许多重继承 一个子类只能有一个父类 一个父类可以派生出多个子类 子类继承了父类,就继承了父类的方法和属性. 在子类中,可以使用父类中定义的方法和属性,也可以创建新的数据和方法. 因而,子类通常比父类的功能更多. 在Java 中,继承的关键字用的是“extends”,即子类是对父类的“扩展”. 注意:子类不能继承父类中私有的(private)成员变量

java类与对象基本使用

public class Dog{ String breed; int age; String color; //成员变量 void barking(){ } 一个类可以包含以下任意变量类型. 局部变量:  方法里面,构造函数或块中定义的变量称为局部变量.该变量将被声明和初始化的方法中,当该方法完成该变量将被销毁. 实例变量: 实例变量都在一个类,但任何方法之外的变量.这些变量在类被加载的实例化.实例变量可以从内部的任何方法,构造函数或特定类别的块访问. 类变量: 类变量是在一个类中声明,任何方