1.面向对象
按照客观世界的“自然组织形式”进行“建模”的方法
“面向对象”是一个开发过程的方法论
面向对象方法的前提是客观世界的自然哲学逻辑
·客观逻辑合理的一般可以使用合理的面向对象代码描述
·客观逻辑不合理的代码是错误的
学习面向对象:学习如何使用面向对象语法按照“自然组织形式”描述业务模型,进行业务软件系统的商业逻辑建模和开发
如:使用接口和类描述业务模型
类是用来描述一个领域模型中的具体概念(名词)的
·领域模型:一个应用软件业务范畴,也叫做业务模型
·属性:描述具体概念特征
案例:
·<图书管理系统>中的概念:书(Book)
·书的特征:书号,书名,编号,作者,价格。。。
基本语法:
·修饰词 class 类名{
修饰词类型 属性名;
}
例如:
public class Book{
int id;
String name;
String[] author={"佚名"};
double price;
String isbn;
}
2.对象:概念的具体实例,对象时类的具体实例
引用:是指向具体对象的句柄,相当于自然语言的代词
对象和引用的关系:
引用(代词)本身不是对象,引用(代词)关联了一个具体对象
引用(代词)可能指空
简单的叙述事物时,不严格区分引用(代词)与对象
3.构造器(constructor)
用来描述对象的创建过程
java构造器的语法:
·声明在类内部,方法名与类名一致的方法叫做构造方法
·构造方法不能声明返回值类型
·构造方法可包含参数,参数是创建对象实例必须依赖的条件(前提条件)
例子:
Point类
public class Point {
int x;
int y;
public Point(int x,int y){//构造函数,不可声明返回值
// System.out.println(this.x);
// System.out.println(this.y);
this.x=x;
this.y=y;
}
public double distance(Point other){//计算两点之间距离
return Math.sqrt((this.x-other.x)*(this.x-other.x)+(this.y-other.y)*(this.y-other.y));
}
}
Circle类
public class Circle {
Point center;//圆心
double r; //半径
public Circle(Point center,double r){//构造函数,给出圆心和半径的值
this.center=center;
this.r=r;
}
public double area(){ //计算圆的面积
return r*r*Math.PI;
}
public boolean contains(Point p){ //判断一个点是否包括在圆内
return center.distance(p)<=r;//Point类里面有distance这个函数
}
}
主函数:
public class CircleDemo {
public static void main(String[] args){
Point p=new Point(1,1); //创建一个Point对象
Point o=new Point(0,0); //创建一个Point对象
Point p1=new Point(2,2); //创建一个Point对象
Circle c=new Circle(o,2); //创建一个Circle对象
System.out.println(c.contains(p)); //调用contains函数
System.out.println(c.contains(p1));
}
}
创建对象在内存中的状态: