006面向对象&封装

01. 面向过程和面向对象思想概述

    1. 什么是面向过程?
    1. 什么是面向对象?
    1. 面向对象思想的好处是什么?
  1. 面向过程: 强调的是过程, 自己通过第一步, 第二步… 一步步的自己去完成对应的需求.
  2. 面向对象: 强调的是对象, 通过指挥对象去帮我们完成对应的需求.
    1. 面向对象是一种[思想], 更符合我们思考问题的一种习惯. (懒人习惯)
    2. 将复杂的问题简单化
    3. 将我们从[执行者]的位置, 变成了[指挥者].
      Java中讲究万物皆[对象]
      可以通过Java代码, 将现实生活的任意一种事物, 都看作为是一个对象
      因为任何一种事物都会具备自己的一份[功能].

02. 类和对象的概述

  • 类是由哪两部分组成的?

    属性, 行为

属性: 成员变量
行为: 成员方法

跟之前定义方法的格式一样, 只不过去掉了static关键字.

03.成员变量和局部变量的区别

	A:位置不同
	成员变量 : 类中方法外

	局部变量 : 方法中, 或者是方法的声明上(形参)


	B:初始化值不同
		

	成员变量 : 有默认初始化值

	局部变量 : 没有默认初始化值, 使用之前必须完成赋值才能使用.


	C:生命周期不同
	


	成员变量 : 随着对象的创建而存在, 随着对象的消失而消失

	局部变量 : 随着方法的调用而存在, 随着方法的弹栈而消失


	D:内存位置不同


	成员变量 : 堆内存
					成员变量所属于对象, 所以在堆内存
	局部变量 : 栈内存
					局部变量所属于方法, 所以在栈内存
		

E:作用域不同(编写代码)

	成员变量 : 在整个类当中.




	局部变量 : 仅在它所在的大括号中有效

04. 对象的使用

  • 如何创建对象?

  • 如何调用对象的属性?

  • 如何调用对象的行为?

    1. 类名 对象名 = new 类名();
      Phone p = new Phone();

    2. 对象名.变量名;
      p.color = “黑色”;
      System.out.println(p.color);

    3. 对象名.方法名(实际参数);
      p.call(“张三”);
      p.sendMessage();

05. this关键字的概述和使用

  • 什么是this关键字

  • this关键字的作用是什么?
    作用: 用来区分局部变量和成员变量的重名问题.

     		this.age = age;
    

    结论: this.就是用来调用本类的成员

     		class Person{
     			String name;
     			
     			public String getName(){
     				return name;			// 如果在使用成员变量的时候, 没有写this. 系统也会默认加上this.
     										// return this.name;
     			}
     		}
    

    this的概念: this代表当前对象的引用[地址值], 谁来调用我, 我就代表谁.

06.private关键字的特点

	private关键字是一个权限修饰符
	
			1, 可以用来修饰哪些东西?
					成员:
							成员变量, 成员方法
			
			2, 被其修饰的[成员], 会具有哪些特点?
			
					特点: 	只能在本类中进行访问

07. 封装的概述和好处

  1. 隐藏实现细节, 仅对外暴露公共的访问方式.

     常见的封装 : 私有成员变量, 对外提供公共的setXxx和getXxx方法.
    
     		注意: 私有仅仅是封装的一种体现形式, 不能说封装就是私有.
    
     		封装是一个大的思想概念 :
    
     				将一段代码, 抽取到方法中, 这就是对代码的一个封装.
    

作为调用者, 我不需要关注方法内部的实现原理, 我只需要关注怎样调用

2. 
	1. 提高了代码的安全性		-> age : -23
	2. 提高了代码的复用性		-> 将一段代码封装到一个方法中, 对方法进行重复调用

08. 构造方法的概述和使用

  • 什么是构造方法?
  • 构造方法的格式为?
  • 构造方法可以有return语句吗?
    1. 构建, 或者说是创造一个对象时候, 调用的方法
      创建对象时候, 执行的方法.
      Person p = new Person();

      .2.方法名与类名相同, 大小写也要一致
      没有返回值类型, 连void都没有
      . 没有具体返回值
      能不能写return?
      3.虽然没有具体的返回值, 但是可以有return语句, 用于结束方法.

09. 构造方法的注意事项

  • 构造方法注意事项?
  • 构造方法能够重载吗?
  • 给成员变量的两种初始化方式有什么区别?
  1. 如果一个类当中没有编写任何构造方法, 系统将会提供一个默认的空参构造方法, 保证可以创建对象

  2. 构造方法也是方法, 可以进行重载

  3. 两种初始化方式分别为:

     	1. 有参构造初始化
    
     	2. setXxx初始化
    
     			这两种方式一般都是配合使用的.
    
     					一般都会通过有参构造进行[初始化], 随后通过setXxx方法[修改]属性值.
    
     						Student s = new Student("张三",23);
     				        s.setName("李四");
     				        System.out.println(s.getName());
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值