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;
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值