去年暑假已经接触过面向对象了,感觉挺不错,现在想想当时根本就没有面向对象的这种想法。现在才真正知道什么是面向对象。那么什么是面向对象?什么又是面向过程?
面向过程是相对于过程而言,你完成一件事需要哪些步骤你心里要有数,在敲代码时,你敲得一个个函数代表完成一件事所需要的一个个步骤,完成调用函数解决这件事情,也就是面向过程的体现。它强调的是功能行为。而面向对象是相对于面向过程而言,它将对象封装进对象里,强调具备功能的对象。
面向对象将人们从功能的实现者转换为对对象的指挥者。就是把你从基层变成了高管。我认为面向对象就是面向过程的再升级。
下面是面向过程的代码体现:
public class Demo2 {
static void open() {
System.out.println("打开冰箱门");
}
static void in() {
System.out.println("走进冰箱");
}
static void close() {
System.out.println("关上冰箱门");
}
public static void main(String[] args) {
open();
in();
close();
}
}
下面是面向对象的代码体现:
class Ren {
public static void open() {
System.out.println("打开冰箱门");
}
}
class Ren2 {
public static void in() {
System.out.println("走进冰箱");
}
}
class Ren3 {
public static void close() {
System.out.println("关上冰箱门");
}
}
public class Demo2 {
public static void main(String[] args) {
Ren r = new Ren();
Ren2 r2 = new Ren2();
Ren3 r3 = new Ren3();
r.open();
r2.in();
r3.close();
}
}
class Wanjia {
String id;
String sex;
int jiBie;
public static void shengJi() {
System.out.println("打怪升级");
}
}
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Wanjia w = new Wanjia();
w.id = "wlwz";
System.out.println(w.id);
w.shengJi();
}
}
在面向对象中,你可以在创建一个类后,可以定义一些属性,就是一些数据。当创建对象后,这些属性就会以默认值的形式在堆里存放。然后通过对象进行对属性的赋值,然后搞一些事情。
它们在电脑里的内存位置需要明确:
栈:调用方法时,方法要进栈,先进后出,创建对象时这个东西(Wanjia w=)(引用)会在栈里存放。
堆:属性存放的地方。
成员变量:它存储在堆中,有初始化值,与对象相关,因对象的创建而出现,因对象的消失而消失。
局部变量:它存储在栈中,无初始化值,与方法相关,因方法的进栈而出现,因方法的弹栈而消失。
匿名对象:场景一,new类().方法();调用方法,但只能调用一次。场景二,方法(new类());