一、面向对象与面向过程

1、面向过程

  • 角度是功能,以方法为最小单位,思考的是具体怎么做。

2、面向对象

  • 角度是抽象,以类为最小单位,思考的是谁来做。

3、示例:“小明去上班”

  • 面向过程

    • 起床,刷牙洗脸,出门,打车,上车,出发,上班;
  • 面向对象
    • 小明: 起床,刷牙洗脸,出门,打车,付钱,上班;
    • 司机: 开车,收钱
    • 车: 跑

二、类和对象

1、概述

    • 属性,方法,构造器,代码块;
    • 类属性,静态方法,静态代码块;
    • 内部类,匿名内部类;
  • 对象/实例
    • 类(模板,图纸,规范) -> 对象(实实在在的”生物”);
    • Class -> new -> Instance;
  • 特性
    • 封装,继承,多态;
  • 语法
    • 关键字: this, super, class, final, static, private, public, protected, abstract, interface, package;
    • 初始化流程: .java -> .class-> 类 -> 对象 -> 运行

2、内存示意图

3、成员变量&局部变量

  • 相同点

    • 都是变量,定义语法一致
  • 不同点
    • 作用域不同;
    • 存储位置不同;
    • 编写位置不同;
  • 注意
    • 就近原则;

4、方法

  • 返回值

    • 无返回值(void);
    • 有返回值(Object);
  • 形参
    • 值传递(基本数据类型);
    • 引用传递(引用数据类型);
  • 备注
    • 权限修饰符与封装一起;

5、构造器

  • 本质

    • 实例化一个类时所使用的特殊”方法”;
    • 任何一个类都有一个默认的构造器
  • 作用
    • 丰富实例化时的数据传入;
  • 注意
    • 构造器可以有多个即重载;
    • 显示定义一个构造器,默认的就会被覆盖;

6、this关键字

  • 本质

    • 指向当前对象的指针;
  • 理解
    • 编写的代码所在的位置是类,而对象是基于类的产物,是后期产生的;
    • 当在编写一些属性或方法时,还并不知道对象是谁,因此使用一个”指针”(编写代码时还不确定是谁)来占位;
    • this就代表当前创建的对象;

三、类和对象总结

  • 概述

    • 同一个类创建的不同对象本质上是两个独立的;
    • 我们编写的class其实是一个模板,它不干活;
    • 真正干活的是new出来之后的那个对象;
  • 区别
    • 本质: 编写的是类, 运行的是对象;
    • 存储位置: 类存储在方法区,对象存储在堆中;
  • 注意
    • 类本身也是对象Class;

Java学习之==>面向对象编程 Part1的更多相关文章

  1. Java学习之==>面向对象编程 Part2

    一.封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结 ...

  2. JAVA学习:面向对象编程

    "算法+数据结构=程序"是一句经典名言,这句话很直接的说明了程序的本质:处理数据.产生结果.即便是最简单的HelloWorld程序,我们也可以将字符串"HelloWorl ...

  3. Java学习day7面向对象编程1-对象和类

    一.Java编程中对象和类的概念 1,什么是类? 答:类是客观存在的,抽象的,概念的东西. 2,什么是对象? 答:对象是具体的,实际的,代表一个事物.例如:车是一个类,汽车,自行车就是他的对象. 关于 ...

  4. Java学习_面向对象编程

    抽象类 一个class定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰.因为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译 ...

  5. Java学习day9面向对象编程2-方法的可变个数的参数和方法的参数传递

    一.方法的可变个数的参数. 问题:我们能够打印的信息都是来源于方法的参数,也就是形参的传递.那如何要给方法传递不同的参数? .1.采用数组形参来定义方法 public static void test ...

  6. Java学习day8面向对象编程2-类的属性和方法

    一.类的属性 1.语法格式 修饰符 类型 属性名 = 初值 说明:修饰符private:该属性只能由该类的方法使用.在同一类内可见.使用对象:变量.方法. 注意:不能修饰类(外部类)    修饰符pu ...

  7. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  8. Java基础-初识面向对象编程(Object-Oriented-Programming)

    Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...

  9. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

随机推荐

  1. magento获取当前栏目ID号与栏目名称函数

    Magento获取当前栏目ID:$_cat= new Mage_Catalog_Block_Navigation();$curent_cat= $_cat->getCurrentCategory ...

  2. Django学习系列16:处理完POST请求后重定向

    处理完POST请求后重定向 代码中new_item_text = ''的写法不怎么样.解决第二个问题时候,顺带把这个问题也解决了. 人们都说处理完post请求后一定要重定向,接下来就实现这个功能吧.修 ...

  3. js 点击不同li 切换颜色

    html <div> <li " onclick='addColor(this.id)'> 会议简介 </li> <li " onclic ...

  4. BZOJ1050 [HAOI2006]旅行comf[并查集判图连通性]

    ★ Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求 一条路径,使得路径 ...

  5. Java 5,6,7,8,9,10,11新特性

    转自https://it18monkey.github.io java5 泛型 (Generics) List<Integer> list=new ArrayList<Integer ...

  6. 使用SpringAOP实现事务(声明式事务管理、零配置)

    前言: 声明式事务管理建立在AOP之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务.声明式事务最大的优点就是不需要通过编 ...

  7. TCP/IP网络编程系列之一(初级)

    概述 网络编程实际上就是编写程序使两台联网的计算机相互的交换数据.操作系统会提供名为“ 套接字 ”的部件.套接字是网络数据传输的软件设备,即使对网络数据传输原理不太熟悉也无关紧要.我们也能通过套接字完 ...

  8. php的流程控制 if elseif swich case for循环

    if ......else 最简形式: <?php                              if (true){ echo "晚上找昌仔训练去";}?> ...

  9. Python可迭代序列反转总结

    字符串反转 示例:s = "hello" 方法一:使用切片 def reversed_str(s): return s[::-1] 方法二:使用reversed # 字符串 -&g ...

  10. Struts2笔记(学struts2只需要这一篇文章)

    1.如何将struts2框架引入到web项目中      1.把struts2相关jar包引入到项目中 2.把struts2的配置文件直接放到src下面,名字要叫做struts.xml.(运行时配置文 ...