最近在准备面试和笔试,就把Java的基础知识总结一下
1. JVM: Java 虚拟机 读取字节码文件(.class)
2. 封装:将数据和处理数据的过程与函数组合成对象。防止对该对象的数据进行不适当的访问。(修饰符,public变量将破坏类的封装性)
3. 继承:对象的再利用(参考书Java程序设计教程-第七版的例子)UML类图中,空心箭头表示继承关系,箭头指向为子类到父类。
父类Book类,所有书都有页数,所以在父类中进行声明。
注意:父类的构造函数不属于类的成员,所以子类不能继承父类的构造函数,只能调用父类的构造函数
public class Book { protected int pages; public Book(int numPages) { pages=numPages; } public void setPages(int numPages) { pages =numPages; } public int getPages() { return pages; } }派生类子类Dictionary类,词汇是Dictionary类的定义,具有protected属性的变量,子类可以进行引用。super()调用父类的构造方法
public class Dictionary extends Book{ private int definitions; public Dictionary(int numPages,int numDefinitions){ super(numPages); definitions=numDefinitions; } public double computeRatio() { return definitions/pages; } public void setDefinitions(int numDefinitions) { definitions=numDefinitions; } public int getDefinitions() { return definitions; } }建立一个子类对象
<pre name="code" class="java">public class Words { public static void main (String[] args) { Dictionary webster= new Dictionary(1500,52500); System.out.println("Number of pages: "+webster.getPages()); System.out.println("Number of definitions: "+webster.getDefinitions()); System.out.println("Definitions per page: " +webster.computeRatio()); } }
运行结果:
Number of pages: 1500
Number of definitions: 52500
Definitions per page: 35.0
4.接口:引用数据类型,实现接口在UML图中使用空心三角形和虚线表示。一般声明常量和抽象方法
public interface IArea{ final double PI=3.14159265758; void area(); }调用接口为IArea.PI。
实现接口
public class Circle implements IArea{ public void area() { int r=1; System.out.println("圆面积: "+PI*r*r); } }
5. 导入包的方法:使用package和import两种方式导入包和类