在面向对象定义之中,也规定了一些基本的特征:
(1)封装:保护内部的操作不被破坏;
(2)继承:在原本的基础之上继续进行扩充;
(3)多态:在一个指定的范围之内进行概念的转换。
面对对象开发过程:OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)
首先创建一个老师的类
public class Teather { // 姓名、年龄、性别、职称、所在院系、是否党员、所授课程; // 方法:上课; protected String name; protected String age; protected String sex; protected String rank; protected String college; protected String isPartyMember; protected String SelectedCourse = ""; //创建老师类的set和get方法 public void setName(String value) { name = value; } public void setAge(String value) { age = value; } public void setSex(String value) { sex = value; } public void setRank(String value) { rank = value; } public void setCollege(String college) { this.college = college; } public void setIsPartyMember(String isPartyMember) { this.isPartyMember = isPartyMember; } public void setSelectedCourse(String selectedCourse) { System.out.println("You are selecting the course of " + selectedCourse + "!"); if(SelectedCourse !=" ") SelectedCourse = SelectedCourse + "," + selectedCourse; else SelectedCourse = SelectedCourse + selectedCourse; } public String getName() { return name; } public String getAge() { return age; } public String getSex() { return sex; } public String getRank() { return rank; } public String getSelectedCourse() { return SelectedCourse; } public String getIsPartyMember() { return isPartyMember; } public String getCollege() { return college; } public void deliverCourse(String selectedCourse) { System.out.println("You are delivering " + selectedCourse + "!"); SelectedCourse = SelectedCourse + "," + selectedCourse; } }
再创建一个导师的类来继承老师的类(同时进行重载和重写)
public class Supervisor extends Teather{ //导师类继承老师类 //同时对导师中的属性进行添加 protected String direction; protected String tClass; //在导师类中创建study方法 public void study(String tDirection){ System.out.println("你正在研究课题"+tDirection+"。"); } //对study方法进行重载 public void study(String tDirection,String tRank){ System.out.println("你正在研究"+tRank+tDirection+"。"); //对老师类中的deliverCourse方法进行重写(delivering改为studying) public void deliverCourse(String selectedCourse) { System.out.println("You are studying " + selectedCourse + "!"); SelectedCourse = SelectedCourse + "," + selectedCourse; } }
提示:java中不管是属性还是方法、类都需要有修饰符作为前缀
Java语言提供了很多修饰符,主要分为以下两类:
访问控制修饰符
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。
default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
private : 在同一类内可见。使用对象:变量、方法。
public : 对所有类可见。使用对象:类、接口、变量、方法
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。。
注意:接口里的变量都隐式声明为 public static final,而接口里的方法默认情况下访问权限为 public
对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要以下三步:
分类:类继承类和类继承接口
格式:public class 子类 extends 父类{类体}
实例:
public class Student extends Person{ void study(){ System.out.println("student study..." + age); } }
注意:
特点:可单继承、多重继承,但不能多继承
格式:public class 类名 implements 接口,接口,…… {类体}
范例:
public class DrawMouse implements MouseListener{ public void mouseClicked(MouseEvent e){ }; public void mousePressed(MouseEvent e){ }; public void mouseReleased(MouseEvent e){ }; public void mouseEntered(MouseEvent e){ }; public void mouseExited(MouseEvent e){ }; //接口中的方法全部需要重写,缺一不可 }
特点: