【面向对象程序设计】
面向对象系统最突出的特性就是封装性、继承性和多态性。
多态性是指循序不同类的对象对同一消息做出相应,多态性包括参数化多态性和包含多态性,能够很好的解决程序函数同名问题。
【消息】对象间的交互通过消息传递来完成。
【类继承和派生的一个例子如下】
与C++面向对象程序设计大体相同,几点需注意:class Person { int age; public String sayHello(){ System.out.println("Hello, I am PersonClass!"); return "Hello world!"; } } public class Student extends Person{ public void study(){ System.out.println("I am studing!"); } public static void main(String args[]){ String s = null; Student student = new Student(); s = student.sayHello(); System.out.println("发送消息,调用父类的方法:sayHellp()返回值:" + s); System.out.println("hello, I am StudentClass!"); System.out.println("发送消息,调用子类的方法:study()"); student.study(); } }
【对象的生命周期】
- main函数在某个类中
- extends表示继承
对象的创建->对象的使用->对象的清除
1.对象的创建
包括对象的申明、实例化、初始化
申明:例如Person Cookie 不为对象分配内存空间,只是分配一个引用空间 类似于指针 是32位的地址空间
实例化:用new为对象分配内存空间 动态分配
初始化:用构造函数对对象进行初始化。
【Person类实例对象的创建例子】
PS:\n换行 println自动换行 print不换行class Person{ private int age; private String name; public void showInfo(){ System.out.print("Person age = " + this.age + "\nname = " + this.name); } public Person(){ age = 0; name = null; } public Person(int age, String name){ this.age = age; this.name = name; } } public class UsePerson { public UsePerson() { // TODO Auto-generated constructor stub } public static void main(String[] args) { // TODO Auto-generated method stub Person p1; Person p2; //仅申明对象,只分配了引用空间,没有分配实际Person内存空间 p1 = new Person(); //实例化$初始化 p2 = new Person(23,"豆腐"); //用含参的构造函数实例化、初始化对象 System.out.println("Use Person() to create p1:"); p1.showInfo(); System.out.println("\nUse Person(xx,xx) to create p2:"); p2.showInfo(); } }
2.对象的使用
3.对象的清除object.variable $ object.function()
Java运行时系统通过垃圾收集器周期性地释放无用对象所使用的内存,完成对象的清除.
【简单数据对象】
Byte Double Integer Charater....
example:
Charater a = new Charater('a');
Charater a2 = new Charater('a');
int difference = a.compareTo(a2);
a.equals(a2);
a.toString();
Character.isUpperCase(a.charValue())
PS:即有多种系统自带的函数可供使用