1.概述:面向对象是基于面向过程的编程思想

举例:把大象装进冰箱

2.开发:不断的创建对象,使用对象,指挥对象做事情

3.面向对象特征:封装 , 继承 , 多态

4.类和对象的关系:

类是一组相关的属性和行为的集合

对象是该类事物的具体体现

5.用class描述事物:

成员变量就是事物的属性 , 成员方法就是事物的行为

6.内存图:

一个对象的内存图

一个对象的初始化过程:

对象共享一个方法区域

7.成员变量与局部变量的区别:

(1)类中的位置不同

成员变量:类中方法外

局部变量:方法内或方法生命上

(2)内存中的位置不同

成员变量:堆内存

局部变量:栈内存

(3)生命周期不同

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

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

(4)初始化值不同

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

局部变量:没有初始化值,必须先定义,赋值,才能使用

8.匿名对象:没有名字的对象

使用情况:(1)对象调用方法仅仅一次的时候

     (2)作为实际参数传递

9.封装

(1)概述:隐藏对象的属性和实现细节,仅对外提供公共访问方式

(2)好处:隐藏实现细节,提供公共的访问方式

      提高了代码的复用性

      提高了安全性

(3)封装原则:将不需要对外提供的内容都隐藏起来

        把属性隐藏,提供公共方法对其访问

10.private关键字:

       概述:是一个权限修饰符

          可以修饰成员(成员变量和成员方法)

          被private修饰的成员只能在本类中才能访问

  常见应用:把成员变量用private修饰

          提供对应的setXxx()/getXxx()方法

11.this关键字:

     概述:代表所在类的对象引用

        方法被哪个对象调用,this就代表那个对象

      使用:局部变量隐藏成员变量时

12.构造方法:

概述:给对象的数据进行初始化

格式:  方法名与类名相同

    没有返回值类型,连void都没有

    没有具体的返回值

注意事项:如果自己没有提供构造方法,系统会给出默认构造方法

      如果自己提供了构造方法,系统将不在提供

     构造方法也是可以重载的。

13.类的成员方法分类:

无参无返回值;

无参有返回值;

有参无返回值;

有参有返回值;

14.一个标准类的基本写法

类:成员变量

  构造方法:

    无参构造方法

    带参构造方法

  成员方法:

    getXxx()

    setXxx()

  给成员变量赋值:

    无参构造方法+getXxx()

    带参构造方法

java笔记——面向对象的更多相关文章

  1. [Java笔记]面向对象-单例模式

    单例模式 目标 使JVM中最多只有一个该类的实例,以节省内存.缺点:只能建一个该类的实例. 实现 具体实现思路: 1构造方法私有化//故在外面不能new很多次 2对外提供一个公开的静态的类方法,获取类 ...

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

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

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

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

  4. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  5. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  6. 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类

    static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...

  7. [Java入门笔记] 面向对象三大特征之:封装

    了解封装 什么是封装? 在Java的面向对象程序设计中,有三大基本特征:封装.继承和多态.首先我们先来看看封装: 在Java的面对对象程序设计中,封装(Encapsulation)是指一种将函数功能实 ...

  8. java笔记之面向对象

    一.面向过程与面向对象的区别 1 面向过程:主要关注点是:实现的具体过程,因果关系[集成显卡的开发思路] * 优点:对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低. * 缺点:采用面向 ...

  9. JAVA(一)JAVA基础/面向对象基础/高级面向对象

    成鹏致远 | lcw.cnblog.com |2014-01-23 JAVA基础 1.开发环境搭建 JAVA程序的执行流程 JAVA命令->要使用一个*.class文件(类文件)->通过c ...

  10. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

随机推荐

  1. Django reset framework: 序列化

    序列化与反序列化 将模型转换为json 称之为 序列化 将json转换为模型 称之为 反序列化 何时进行序列化与反序列化 序列化:当后端将数据库中信息取出返回给前端时,要进行序列化操作 反序列化:当需 ...

  2. Java中,在不知道Key的情况下,用多种方法完成一个Map类型的遍历

    方法如下: 1.可以用迭代器来遍历, // 获取迭代器 Iterator<String> it = map.iterator().iterator(); // 输出集合中的所有元素 whi ...

  3. [golang]gin框架接收websocket通信

    前言 WebSocket是一种在单个TCP连接上进行全双工通信的协议.WebSocket让客户端和服务端之间的数据交换变得非常简单,且允许服务器主动向客户端推送数据,并且之后客户端和服务端所有的通信都 ...

  4. centos7安装influxdb2

    前言 InfluxDB是一个由InfluxData开发的开源时序型数据库,专注于海量时序数据的高性能读.高性能写.高效存储与实时分析等,广泛应用于DevOps监控.IoT监控.实时分析等场景. 服务器 ...

  5. Hugging News #0814: Llama 2 学习资源大汇总 🦙

    每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...

  6. k8s发布应用

    前言 首先以SpringBoot应用为例介绍一下k8s的发布步骤. 1.从代码仓库下载代码,比如GitLab: 2.接着是进行打包,比如使用Maven: 3.编写Dockerfile文件,把步骤2产生 ...

  7. 详情讲解canvas实现电子签名

    签名的实现功能 我们要实现签名: 1.我们首先要鼠标按下,移动,抬起.经过这三个步骤. 我们可以实现一笔或者连笔. 按下的时候我们需要移动画笔,可以使用 moveTo 来移动画笔. e.pageX,e ...

  8. django配置swagger自动生成接口文档以及自定义参数设置

    首先安装swagger所用的包 pip install drf-yasg 然后再settings.py 中注册app 接口采用的token认证,在settings.py配置认证方式 SWAGGER_S ...

  9. role

    角色权限管理改造方案 #   为什么需要角色 现有的权限方案 .net后台权限管理 在后台类中配置,权限 = 一级菜单:二级菜单:三级菜单: 通过在view模板中判断是否有权限显示菜单 后端通过权限配 ...

  10. jenkins部署及gitlab联调

    jenkins部署及gitlab联调 目录 jenkins部署及gitlab联调 一.jenkins安装 1.环境优化 2.安装jdk java 环境 3.下载jenkins 4.启动Jenkins服 ...