在面向对象定义之中,也规定了一些基本的特征:
(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 来创建一个新的对象。创建对象需要以下三步:
- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字 new 来创建一个对象。
- 初始化:使用 new 创建对象时,会调用构造方法初始化对象。
分类:类继承类和类继承接口
类继承类格式:public class 子类 extends 父类{类体}
实例:
public class Student extends Person{ void study(){ System.out.println("student study..." + age); } }
注意:
- 其中子类拥有父类非private的属性和方法(一般父类用private修饰属性,
用public修饰方法,子类中用方法设置属性) - 子类可对父类进行扩展,可对父类方法进行重写(重写的访问修饰符权限
应大于等于父类)权限大小public>protected>缺省>private - super表示父类,this表示本类
- 所有类均继承object类
特点:可单继承、多重继承,但不能多继承
类继承接口格式: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){ }; //接口中的方法全部需要重写,缺一不可 }
特点:
- 接口的抽象方法都需要重写
- 类中的属性默认具有final和static属性即变量初始化后不可更改
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)