java基础学习01(类的单继承性,特殊变量,构造函数,包,接口)
1.类的单继承性:Java编程语言中允许用extends关键字从一个类扩展出一个新类,新类继承超类的成员变量和方法,并可以覆盖方法。
2.特殊变量:类中有两个特殊变量super和this。
2.1 super
类声明中用关键字extends扩展了其超类之后,super用在扩展类中引用其超类中的成员变量。
2.2 this
this变量指向当前对象或实例。
str = "名字: " + name + "\nSalary: " + salary;
上例中的语句可以换成下面的语句。
str = "名字: " + this.name + "\nSalary: " + this.salary;
这两者是等同的,因为在Java编程语言中,系统自动将this关键字与当前对象的变量相关联。
3.【例3.1】使用super变量,输出结果如图所示。源程序代码如下:
//程序文件名为UseSuper.java
public class UseSuper
{
public static void main(String[] args)
{
Manager m = new Manager();
m.name = "王飞";
m.salary = 10000;
m.department = "业务部";
System.out.println(m.getSalary());
}
}
class Employee
{
public String name;//名字
public int salary;//薪水
//方法
public String getSalary()
{
String str;
str = "名字: " + name + "\nSalary: " + salary;
return str;
}
}
class Manager extends Employee
{
public String department;//部门
//方法
public String getSalary()
{
//使用super变量调用超类的方法
return super.getSalary() + "\nDepartment: " + department;
}
}
输出结果:

4.构造函数
【例4.1】基于例3.3将公有变量改成私有变量之后,增加两个构造函数,访问通过外部调用构造函数实现初始化赋值
1 //程序文件名为UseConstruct.java 2 public class UseConstruct 3 { 4 public static void main(String[] args) 5 { 6 Manager m = new Manager("王飞",10000,"业务部");//初始化赋值 7 System.out.println(m.getSalary()); 8 } 9 } 10 class Employee 11 { 12 private String name;//名字 13 private int salary;//薪水 14 //构造函数 15 public Employee(String _name, int _salary) 16 { 17 name = _name; 18 salary = _salary; 19 } 20 public String getSalary() 21 { 22 String str; 23 str = "名字: " + name + "\nSalary: " + salary; 24 return str; 25 } 26 } 27 class Manager extends Employee 28 { 29 private String department; 30 //构造函数 31 public Manager(String _name, int _salary, String _department) 32 { 33 super(_name,_salary); 34 department = _department; 35 } 36 public String getSalary() 37 { 38 return super.getSalary() + "\nDepartment: " + department; 39 } 40 }
5.包
计算机操作系统使用文件夹或者目录来存放相关或者同类的文档,在Java编程语言中,提供了一个包的概念来组织相关的类。包在物理上就是一个文件夹,逻辑上代表一个分类概念。
包就是指一组类。例如一个名叫Company的包,可以包含一组类,如Employee(雇员)、Manager(管理者)和Department(部门)等。声明包的基本格式如下:
Package 包名;
其中:Package为关键字,包名为标识符。
使用包时的注意事项如下:
(1) Package语句要作为程序非注释语句的第一行语句。
(2) 包内的类名惟一。
(3) 引用包中的类时,使用import语句。import语句的基本格式为import 包名.类名,其中import为关键字,包名和类名之间用圆点(.)隔开。
【例5.1】编写程序测试包,先建立一个Company文件夹,然后建立名为Manager.java的类文件。源程序代码如下:
1 //程序文件名为Manager.java 2 package Company;//声明包名Company 3 class Employee 4 { 5 public String name;//名字 6 public int salary;//薪水 7 public String getSalary() 8 { 9 String str; 10 str = "名字: " + name + "\nSalary: " + salary; 11 return str; 12 } 13 } 14 public class Manager extends Employee 15 { 16 public String department;//部门 17 public String getSalary() 18 { 19 return super.getSalary() + "\nDepartment: " + department; 20 } 21 }
对此文件进行编译,生成类文件Manager.class。
在原目录建立源程序文件UsePackage.java。源程序代码如下:
1 //程序文件名UsePackage.java 2 import Company.Manager;//引入包中的类 3 public class UsePackage 4 { 5 public static void main(String[] args) 6 { 7 Manager m = new Manager(); 8 m.name = "王飞"; 9 m.salary = 10000; 10 m.department = "业务部"; 11 System.out.println(m.getSalary()); 12 } 13 }
编译后,在命令提示符状态下运行,输出结果如图所示。从图中可以看出首先进入Company目录,编译Manager.java文件,然后返回上层目录,编译UsePackage.java文件,最后执行UsePackage类文件,输出正确的结果。

6.接 口
(1) 没有变量的声明,但可以定义常量。
(2) 只有方法的声明,没有方法的实现。
接口声明的基本格式如下:
public interface 接口名 extends 接口列表
【例6.1】测试接口,定义接口文件Product.java,定义了两个常量,声明了一个方法。接口文件如下:
1 //程序文件名Product.java 2 public interface Product 3 { 4 static final String MAKER = "计算机制造厂"; 5 static final String ADDRESS = "上海"; 6 public int getPrice(); 7 } 8 使用接口的源文件代码如下: 9 //程序文件名UseInterface.java 10 public class UseInterface 11 { 12 public static void main(String[] args) 13 { 14 Computer p = new Computer(); 15 System.out.print(p.ADDRESS + p.MAKER); 16 System.out.println(" 计算机的价格:" + p.getPrice()+ " 万元"); 17 } 18 } 19 class Computer implements Product 20 { 21 public int getPrice() 22 { 23 return 1; 24 } 25 }


浙公网安备 33010602011771号