java系列-面向对象设计-创新互联
面向对象的设计思想是当今软件设计领域应用最为广泛的设计思想,它解决了面向过程的设计无法适应大规模软件开发的问题,可以有效的将问题进行划分和隔离。
成都创新互联公司成都网站建设按需规划网站,是成都网站建设公司,为成都PVC花箱提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站设计热线:18982081108基本特点- 封装;
- 继承;
- 多态;
- 开闭原则:对扩展开发,对修改关闭;
- 里式替换原则:父类出现的地方,可以直接用子类替换;
- 依赖倒置原则:面向接口、面向父类编程;
- 单一职责原则;
- 接口隔离原则;
- 最少知道原则;
- 合成复用原则:多用组合、聚合,少用继承;
//declear package
package com.test;
public class Employee {
//declear field
private String name;
private int age;
//constructor
public Employee(String name, int age) {
this.name = name;
this.age = age;
}
//method
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
包是java中的一种低级封装模式,通过包声明就可以把一个类放在某个包下,从而实现类的第一层隔离。在声明类的时候叶可以不指定包声明,但通常不推荐这么做。
在java中使用包的场景有两个,一个是将当前类声明到某一个包下,另外就是导入其他包中的类,而在导入类时又分为类导入和静态导入。
//在头部导入
import java.utils.Date;
//在使用时导入
java.utils.Date date = new java.utils.Date();
//静态导入,可以导入类中的静态方法,使用更方便
import static java.lang.System.*;
类用class关键字来声明,一个类的名称可以和所在文件名称不同,但一般不会这么做,类名由字母、数字、下划线、$组成,但不能以数字开头。
成员变量是类对数据的封装,方法是类对外提供的行为或能力,即一个功能点,在方法中往往包含了对数据的数据过程,类不应该直接将内部数据和数据处理过程暴露给使用者。
类中如果定义了多个构造函数,可以通过this关键字进行互相调用。成员方法也可以通过重载的方式来实现扩展,所谓重载就是方法名称相同,但方法参数列表不同的方法(参数类型、个数、顺序不同)。
变量和方法还可以通过static声明为静态的,静态变量一般会作为常量存在,例如:
public static final int MAX_VAL = 1000;
而静态方法一般用来声明工具方法,例如Collections和Arrays中提供的工具方法都是静态方法。
继承public class Person {
protected String name;
protected int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("hello," + name);
}
}
//declear subclass
public class Employee extends Person {
private String no;
public Employee(String name, int age, String no) {
//invoke super class constructor
super(name, age);
this.no = no;
}
//override super class method
public void sayHello() {
System.out.println(no + ", hello, " + name);
}
}
public class Main {
public static void main(String[] args) {
//
Person person = new Employee();
}
}
如果希望类不会被继承或方法不会被重写,可以将类或方法声明为final的,java类库中的一些核心类为了保证代码的安全性,都被声明为了final,比如String。
继承是实现多态的基础之一,在使用多态时就会涉及到强制类型转换,这种转换即可以向下转也可以向上转。
Person person = new Employee();
Employee emp1 = (Employee)person;
Person person2 = (Person)emp1;
在使用继承的模式构建软件系统时,抽象类是最常用的模式,抽象类就是具有抽象方法的类,一般用抽象类类定义程序的骨架,然后用子类加多态的方式来动态的扩展软件系统,比如常用的Spring开发框架中就使用的大量的抽象类来保证软件的可扩展性。
在java中,Object是所有类的默认父类
在Object中提供了与等待/通知、对象析构、克隆、等值判断、打印等方法,其中equals/hashCode和toString是在日常开发中会经常涉及的三个方法。
- equals:比较两个对象是否相等,默认比较对象的内存地址;
- hashCode:返回对象的哈希值,默认调用native方法;
- toString:返回对象的字符串打印值,默认打印对象地址;
接口在java中一般用来定义行为,如果某个对象想要具有某个接口的行为,就直接实现这个接口。接口中的方法是public abstract的,成员变量是public static final 的,在使用时要注意。
另外在java8中引入了接口方法的默认实现,即可以为接口方法提供默认的实现逻辑。
public interface Walk {
default void walk() {
System.out.println("walk");
}
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
新闻标题:java系列-面向对象设计-创新互联
当前地址:http://myzitong.com/article/dgihss.html