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 }
View Code

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 }
View Code

对此文件进行编译,生成类文件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 }
View Code

编译后,在命令提示符状态下运行,输出结果如图所示。从图中可以看出首先进入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 }
View Code

posted @ 2016-03-16 18:16  虚-染D  阅读(147)  评论(0)    收藏  举报