上次说到oop思维,这里简单做个介绍,与其他思维做个对比
OOA - 面向对象分析方法(Object-Oriented Analysis)
如:对人OOA
1、属性:年龄,性别,身份证,姓名
2、行为:走路,吃饭,跑步
OOD - 面向对象设计(Object-Oriented Design)
对OOA出来的对象进行设计,即:将各个OOA之间的联系关联起来
OOP-面向对象编程(Object Oriented Programming)
对OOD设计出来的对象之间的交互关系进行编码
封装:把客观的事物封装成类,包括数据和方法。封装把对象的设计者和对象的使用者分开,这样有助于提高类和系统的安全性。
继承:建立一个新的类,也就是派生类,继承原有的类的数据和方法,也可以重新定义或者添加数据和方法。
多态:同一个操作作用于不同类中,将会产生不同的反应。也就是不同类的对象接收到相同消息时,将会得到不一样的结果。
用引用操作对象
在Java中一切都是被看作为对象,因此可以采用单一固定的语法。
尽管一切都看做对象,但操作的标示符实际上仅仅是对象的一个“引用”(reference)。
如果想操作一个字符串,则可以创建一个String 引用:
String s ;
但是这里创建的仅仅是引用,而不是对象。因此如果要操作s,这会返回错误。这是因为s实际上并没有与任何对象关联.
因此一种安全的做法就是:创建一个引用的同时便进行初始化.
String s = "abc";
创建对象通常使用new操作符来实现:String s = new String("qwer");
永远也不需要销毁对象
作用域:由花括号的位置决定,在作用域中定义的变量只可用于作用域结束之前。
对象的作用域:Java对象不具备和基本类型一样的生命周期。当使用new创建一个java对象时,它可以存活于作用域之外。
如:
{
String s = new String("qwer");
}
解析:
引用s在作用域终点就消失了,但是s指向的对象任然占据这内存空间。
我们无法在这个作用域之后访问这个对象,因为对它唯一的引用已经超出了作用域的范围。
java如何防止这些对象填满内存空间?
Java中有一个垃圾回收器,用来监视用new创建的所有对象,并辨别那些不会被再引用的对象。随后,释放这些对象占用的内存空间,以便提供给其他新的对象使用。
问:万物都是对象,如何描述对象的外观和行为,即属性和方法
答:创建新的数据类型 -- 类
java中使用class关键字。如:
class Hello{
public static void main(String[] agrs){
Hello hello = new Hello();
}
}
利用类进行实例化: Hello hello = new Hello();
刚刚说外观和行为及属性和方法,如何定义呢?
class Dog {
int leg;
String color;
public Dog(int leg, String color) {
this.leg = leg;
this.color = color
}
public void run() {
println("dog leg: " + this.leg + ", color: " + this.color + ", run quickly!");
}
}
Dog dog1 = new Dog(4, "blue");
dog1.run();
通过在类内部定义属性和方法,在实例化,或者单独赋值给予属性值
通过方法进行类/单个实例是执行某种动作
还有更多的类细节,在以后继续讲解~