Java面向对象(一)
1.什么是面向对象?与面向过程有什么区别?
面向过程:在遇到一件事情的时候,思考“我应该怎么做”,然后一步一步实现的过程
面向对象:同样遇到一件事情的时候,会思考“我应该派谁去做”,其中的“谁”就是对象,至于他要怎么做,不用管。总之,一群对象合力做好这件事情就行了。
2.类和对象
类:是对某一类事物的抽象描述
对象:是对类描述的现实事物的一个个体
public class car {
String color;
int number;
void run(){
System.out.println(color+" "+number);
}
}
public class carDemo{
public static void main(String[] args){
car c = new car();
c.color = "red";
c.number = 4;
c.run();
}
}
3.对象的内存图解
4.局部变量和成员变量的区别
区别一:定义的位置不同
成员变量定义在类中
局部变量定义在方法中或者{}中
区别二:在内存中的位置不同
成员变量在堆内存的对象中
局部变量在栈内存的方法中
区别三:声明周期不同
成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失
局部变量随着方法的运行而出现在栈中,随着方法的结束而从栈中消失
区别四:初始化不同
成员变量因为在堆中,故其有默认的初始值
局部变量没有默认的初始值,必须手动的赋值才可以使用
5.基本类型和引用类型作为参数传递
5.1 基本类型作为参数传递时,其实是将基本类型变量的值复制一份传递给调用的方法中,这时在方法中对变量进行操作,影响的只是方法中的变量,当方法进行弹栈之后,程序又回到main方法中,变量还是原来的值,不进行改变。
class demo{
public static void main(String[] args){
int x=4;
show(x);
System.out.println("x="+x);
}
public static void show(int x){
x=6;
}
}
5.2引用类型作为参数传递时,是将引用类型变量内存空间的地址值复制了一份传递给调用的方法中,这个时候会有两个引用同时指向一个对象。当在方法中进行对变量的操作时,会根据引用找到堆中的对象,并将堆中的变量值进行改变。
class Demo
{
int x ;
public static void main(String[] args)
{
Demo d = new Demo();
d.x = 5;
show(d);
System.out.println("x="+d.x);
}
public static void show(Demo d)
{
d.x = 6;
}
}
上一篇: Android中解决页签手指按下从左到右滑动的bug
下一篇: 详解Java反射实现Aop代理