JAVASE 面向对象

面向对象

1.面向对象

概述:把不同功能,分别进行封装,并将类似的功能封装到一起;在需要的时候调用相对应的类

  • OOA:面向对象分析:分析解决问题的过程需要多少个对象
  • OOD:面向对象设计:分析对象之间存在的关系
  • OOP:面向对象编程

1.1面向对象的特征

  • 封装性(encapsulation)
  • 继承l(inheritance)
  • 多态(polymorphism)
  • 抽象(abstract)

2.类和对象

2.1类

  1. 类是抽象的,抽取多个对象相像的部分构成的
  2. 类是属性行为的集合,是一个模板
        //类定义的格式:
        [访问权限修饰符] class 类名 {
            类体;
            类的成员:
                属性:成员变量
                行为:成员方法
        }
        //成员的位置特点:只能定义类的成员,不能做具体逻辑代码编写

2.2对象

对象又称为:引用 变量 实例[instatnce]

  1. 对象是具体
  2. 先有对象再有类;也可以是在类模板的基础上创建的
  3. 对象可以理解成地址(引用数据类型都是地址)
        //对象创建的格式
        类名 对象名 = new 类名( );

3.局部变量 & 成员变量的区别

不同点局部变量成员变量
定义的位置不同定义在方法体内方法声明上定义在类体内方法体外
内存的位置不同存放栈区存放堆区
初始化值不同没有默认值(需要先赋值在使用)
生命周期不同随方法同步存在和销毁随对象而生成,对象销毁后等,等垃圾回收器回收(不一定立刻销毁)
就近原则局部变量和成员变量重名的时候,局部变量优先于成员变量

4.值传递和引用传递

具体可参考:06.JAVASE 数组 & Arrays工具类:3.值传递 & 引用传递

  • 原则就是引用类型空间开辟在堆区,多个指向同一个地址的对象,修改成员变量,会导致所有对象输出值改变
  • 值传递则不会因为方法的调用而影响,因为在栈区内,每一个方法所在的空间不同(同名的变量)

5.匿名对象

没有对象名

        //格式
        new 类名();

5.1匿名对象特点

  1. 只需要执行一次时使用
  2. 一旦执行完就会自动释放,节约内存资源
  3. 作为实际参数传递的时候比较方便
		new Student(); // 没有名字的对象
		new Student().name = "老王";
		System.out.println(new Student().name); // null
		//匿名只能用一次,所以每new一次,都是新的对象,地址值不相同
		//匿名对象例子:
		// Scanner input = new Scanner(System.in);
		System.out.println("请输入整数: ");
		int num = new Scanner(System.in).nextInt();
		System.out.println(num);

6.垃圾对象

没有引用(指针) 指向堆区空间的对象

6.1成为垃圾对象的情况

  1. 匿名对象使用完后

    		// 1.匿名对象使用完毕
    		new Student();
    
  2. 对象被赋值为null

    		// 2.对象被赋值为null
    		Student s = new Student();
    		// s = null;
    
  3. 对象被重新创建

  4. 引用所在的方法执行结束

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值