变量分类 对象 引用原则

  • 对象
    • 对象的作用
    • 变量的分类
    • 封装![在这里插入图片描述](https://img-blog.csdnimg.cn/20190219182721306.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDU5NDg3Mw==,size_16,color_FFFFFF,t_70)
      • 引用
      • 如果这样封装
        • 就近引用

对象

对象的作用

###06.01_面向对象(面向对象思想概述)(了解)

  • A:面向过程思想概述

    • 第一步
    • 第二步
  • B:面向对象思想概述
    • 找对象(第一步,第二步)
  • C:举例
    • 买煎饼果子
    • 炒菜
  • D:面向对象思想特点
    • a:是一种更符合我们思想习惯的思想
    • b:可以将复杂的事情简单化
    • c:将我们从执行者变成了指挥者
      • 角色发生了转换
  • E:面向对象开发
    • 就是不断的创建对象,使用对象,指挥对象做事情。
  • F:面向对象设计
    • 其实就是在管理和维护对象之间的关系。
  • G:面向对象特征
    • 封装(encapsulation)
    • 继承(inheritance)
    • 多态(polymorphism)

变量的分类

###06.02_面向对象(类与对象概述)(掌握)

  • A:我们学习编程是为了什么

    • 为了把我们日常生活中实物用学习语言描述出来
  • B:我们如何描述现实世界事物
    • 属性 就是该事物的描述信息(事物身上的名词)
    • 行为 就是该事物能够做什么(事物身上的动词)
  • C:Java中最基本的单位是类,Java中用class描述事物也是如此
    • 成员变量 就是事物的属性
    • 成员方法 就是事物的行为
  • D:定义类其实就是定义类的成员(成员变量和成员方法)
    • a:成员变量 和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
    • 3个声明都是成员变量
    • b:成员方法 和以前定义方法是一样的,只不过把static去掉,后面在详细讲解static的作用。
  • E:类和对象的概念
  • aStudy就是类名字
    • a:类:是一组相关的属性和行为的集合
    • b:对象:是该类事物的具体体现
    • c:举例:
      • 类 学生
      • 对象 具体的某个学生就是一个对象

###06.03_面向对象(学生类的定义)(掌握)

  • A:学生事物
  • B:学生类
  • C:案例演示
    • 属性:姓名,年龄,性别
    • 行为:学习,睡觉

###06.04_面向对象(手机类的定义)(掌握)

  • 模仿学生类,让学生自己完成

    • 属性:品牌(brand)价格(price)
    • 行为:打电话(call),发信息(sendMessage)玩游戏(playGame)

###06.05_面向对象(学生类的使用)(掌握)

  • 如何使用对象?

    • 创建对象并使用
    • 格式:类名 对象名 = new 类名();
  • 如何使用成员变量呢?
    • 对象名.变量名
  • 如何使用成员方法呢?
    • 对象名.方法名(…)

###06.06_面向对象(手机类的使用)(掌握)

  • A:学生自己完成

    • 模仿学生类,让学生自己完成

###06.07_面向对象(一个对象的内存图)(掌握)

  • A:画图演示

    • 一个对象

###06.08_面向对象(二个对象的内存图)(了解)

  • A:画图演示

    • 二个不同的对象

###06.09_面向对象(三个引用两个对象的内存图)(了解)

  • A:画图演示

    • 三个引用,有两个对象的引用指向同一个地址

###06.10_面向对象(成员变量和局部变量的区别)(掌握)

  • A:在类中的位置不同

    • 成员变量:在类中方法外
    • 局部变量:在方法定义中或者方法声明上
  • B:在内存中的位置不同

    • 成员变量:在堆内存(成员变量属于对象,对象进堆内存)
    • 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
  • C:生命周期不同

    • 成员变量:随着对象的创建而存在,随着对象的消失而消失
    • 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
  • D:初始化值不同
    * 成员变量:有默认初始化值(如包装类型)

    • 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
  • 注意事项:

    • 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。

封装

引用

如果这样封装

就近引用


* 基本数据类型变量包括哪些:byte,short,int,long,float,double,boolean,char
* 引用数据类型变量包括哪些:数组,类,接口,枚举

###06.11_面向对象(方法的形式参数是类名的时候如何调用)(掌握)

  • A:方法的参数是类名public void print(Student s){}//print(new Student());

    • 如果你看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象。

###06.12_面向对象(匿名对象的概述和应用)(掌握)

  • A:什么是匿名对象

    • 没有名字的对象
  • B:匿名对象应用场景
    • a:调用方法,仅仅只调用一次的时候。

      • 那么,这种匿名调用有什么好处吗?

        • 节省代码
      • 注意:调用多次的时候,不适合。匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。
    • b:匿名对象可以作为实际参数传递
  • C:案例演示
    • 匿名对象应用场景

###06.13_面向对象(封装的概述)(掌握)

  • A:封装概述

    • 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
  • B:封装好处

    • 隐藏实现细节,提供公共的访问方式
    • 提高了代码的复用性
    • 提高安全性。
  • C:封装原则

    • 将不需要对外提供的内容都隐藏起来。
    • 把属性隐藏,提供公共方法对其访问。

###06.14_面向对象(private关键字的概述和特点)(掌握)

  • A:人类赋值年龄的问题
  • B:private关键字特点
    • a:是一个权限修饰符
    • b:可以修饰成员变量和成员方法
    • c:被其修饰的成员只能在本类中被访问
  • C:案例演示
    • 封装和private的应用:
    • A:把成员变量用private修饰
    • B:提供对应的getXxx()和setXxx()方法
    • private仅仅是封装的一种体现形式,不能说封装就是私有

###06.15_面向对象(this关键字的概述和应用)(掌握)

  • A:this关键字特点

    • 代表当前对象的引用 (谁来调用我,我就代表谁)
  • B:案例演示
    • this的应用场景
    • 用来区分成员变量和局部变量重名

###06.16_面向对象(手机类代码及其测试)(掌握)

  • A:学生练习

    • 请把手机类写成一个标准类,然后创建对象测试功能。

        class Demo2_Phone {public static void main(String[] args) {Phone p1 = new Phone();p1.setBrand("三星");p1.setPrice(5288);System.out.println(p1.getBrand() + "..." + p1.getPrice());p1.call();p1.sendMessage();p1.playGame();}}/*手机类属性:品牌brand,价格price行为:打电话call,发短信sendMessage,玩游戏,playGame*/class Phone {                              //java beanprivate String brand;                    //品牌private int price;                      //价格public void setBrand(String brand) {    //设置品牌this.brand = brand;}public String getBrand() {               //获取品牌return this.brand;                    //this.可以省略,你不加系统会默认给你加}public void setPrice(int price) {       //设置价格this.price = price;}public int getPrice() {                  //获取价格return price;}public void call() {                    //打电话System.out.println("打电话");}public void sendMessage() {               //发短信System.out.println("发短信");}public void playGame() {              //玩游戏System.out.println("玩游戏");}}
      

变量分类 对象 引用原则相关推荐

  1. Python学习之变量、对象和引用

    Python学习之变量.对象和引用 文章目录 Python学习之变量.对象和引用 问题的引出 变量创建 变量类型 变量使用 动态类型 类型属于对象,而不是变量 对象的垃圾收集 参考资料 问题的引出 当 ...

  2. 用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变

    使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变 答: 使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的. 代码 public ...

  3. python一个对象只能被一个变量引用吗_Python中的变量、对象、引用

    很多编程语言都有所谓的引用,对象,变量等概念.这些概念在强类型的语言中貌似并不是那么的重要,但是在动态类型的语言中,还是值得去仔细思考一下的 什么是变量 对于变量,在数学中我们已经了解过,就是一个值可 ...

  4. 引用变量和对象--作为初学者的混淆

    引入: 今天上网课老师在讲String型 举了这么一个例子: String对象是不可变的,字符串一旦创建,内容不能再变 public class teste {public static void m ...

  5. 面向过程和面向对象的设计思想、java类、Java类的定义、java对象、对象的创建和使用、类和对象、变量分类、方法分类、构造方法、方法的重载

    1.面向过程和面向对象的设计思想 面向过程:procedure oriented programming 缩写 POP. 分析出解决问题所需要的步骤,然后把步骤一步一步实现. 面向过程直接关注流程. ...

  6. Python变量和对象类型速记手册

    变量和对象类型 Python中关于变量和对象类型有一些重要的概念: 变量不受类型约束 变量并不是一块内存空间的标签,只是对象的名字,是没有类型的,相当于一个可以指向任何对象void指针.类型属于对象, ...

  7. 【Java2】一维数组,家庭收支界面,/属性和方法,方法重载,变量分类,可变参数,包

    文章目录 1.一维数组:int[ ] a = { } 1.1 数组的内存分析(静态):数组名=首地址 1.2 数组的内存分析(动态):元素默认值 1.3 数组相关算法: 1.3.1 找最值:array ...

  8. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  9. 如何使用包含属性名称的变量检查对象属性是否存在?

    本文翻译自:How to check if object property exists with a variable holding the property name? I am checkin ...

最新文章

  1. 【错误记录】Flutter 设备连接显示 Loading... ( 断网 | 删除 flutter/bin/cache/lockfile 文件 )
  2. 通过过滤器控制页面输出内容
  3. (转) 淘淘商城系列——Redis五种数据类型介绍
  4. 那些值得思考的PHP问题
  5. Java Base64 编码解码方案总结
  6. 【Vue.js学习】生命周期及数据绑定
  7. LeetCode 707. 设计链表(List)
  8. centos7常用工具安装手册
  9. Hbase集群安装Version1.1.5
  10. 解决Pycharm里远程调试缺乏DISPLAY环境变量的TkAgg报错
  11. JDBC 增删改查操作示例
  12. 支持开源,近期将开设Laszlo专题,陆续介绍相关资讯
  13. 【图论】Floyd算法求任意两点间最短路
  14. 133道Java面试题及答案(面试必看)
  15. Stm32串口通信基础实验
  16. 关于UML 画图工具EA 在linux下的安装和界面配置
  17. python超清壁纸_Python爬取5K分辨率超清唯美壁纸
  18. 关于项目开发的量化考核。。。
  19. tcpdump提取源IP
  20. python显示gif图片_利用Python制作GIF图片

热门文章

  1. java猜数字游戏实验报告_java猜数游戏实验报告.doc
  2. hdoj 1045 Fire Net 直接枚举 模拟就好了
  3. 华为第一个月工作感受
  4. 1107 模拟赛总结
  5. 【vue】vue组件发表评论功能
  6. 《Cell》杂志22篇微生物文章文章为微生物组领域疯狂打Call!
  7. ZZULIOJ 2853: 小A的游戏昵称(容斥定理)
  8. 戴尔灵越5370win10+Ubuntu16双系统卸载Ubuntu
  9. 南师大计算机复试面试,南师大复试经验分享
  10. 电商管理系统客户端原型分享