类和对象设计
---恢复内容开始---
面向对象程序设计(Object Oriented Programming,OOP)中典型的设计思想---抽象:将现实世界中的实体理解为由属性数据和对这些属性实施行为的统一体,即对象。属性表示对象的性质,行为则定义l对象可以提供的外部服务。OOP其他三个典型的特征是:封装、继承和多态。
(1)封装:将操作个操作所涉及的数据捆绑在一起,使其免受外界干扰和误用的机制。方法封装保护在属性数据周围使这些属性均无法直接访问。最基本的封装单元是类。
(2)继承:父类的基本特征可被所有子类对象所共享,子类又可以增加新的特性,提高了类的重复利用率。
(3)多态:指同一名称的方法可以有多种不同的功能,或者相同的接口有多种实现方法。
1.方法重载
Java允许使用同一个名字去定义多个方法,只要方法的参数列表不同,即参数的数量、类型不完全相同。方法调用时会据此自动调配。
根据方法的返回值类型是无法重载方法的,因为在调用方法时,返回值是不参与调用的。
2.实例化对象
(1)比较两个对象
==和!= 用于判断运算符两边对象的地址空间是否相同。
equals() 方法可以比较两个对象的值是否相等,如p1.equals(p2)。
(2)如果只想声明某实例,并不想创建对象,则可以使用关键字null(含义空)
如:Point p3=null; //并未分配内存空间
p3= new Point(); //需要的时候再对其实例化。
3.方法调用
(1)传值调用:形参不会改变实参的值
(2)引用:类似c语言的传地址调用,将实参的地址传给形参,两者的地址空间相同。当实参为复合数据类型时(数组、对象),Java采用引用方式进行参数传递。
4.使用类成员
在变量(方法)定义前加上一个关键字static,定义一个静态变量(方法),属于整个类。
5.包
在一个包中,类是不可以重名的,但在不同的包中允许出现相同的类名。
(1)包的定义:package语句指定了一个类存放命名的空间,格式为:com.hank.www表示包文件放置的文件路径为com/hank/www。
(2)包的引入:
MyTest.java。如下:
//HelloWorld.java
package com.hank.www;
public class HelloWorld
{
public HelloWorld(){System.out.println(“Hello,World !”);}
public void display(){System.out.println(“Welcome to the java programming world !”);}
}
//MyTest.java
import com.hank.www.HelloWorld;
public class MyTest
{
public static void main(String[] args)
{
HelloWorld hw=new HelloWorld();
hw.display();
}
}
6.类及成员修饰符
同一个类 | 同一个包 | 不同包中的子类 | 不同包中的非子类 | |
private | * | |||
default | * | * | ||
protected | * | * | * | |
public | * | * | * | * |
关键字final可用于修饰类、成员变量、成员方法。它所修饰的元素不允许再修改。