1.面向过程与面向对象

  (1)面向对象思维方式是一种更符合人们思考习惯的思想

  (2)面向过程思维方式中更多的体现的是执行者,而面向对象中更多的体现的是指挥者

  (3)面向对象思维方式将复杂的问题简单化

2.类与对象

  (1)定义类的格式

    public class 类名 {

     //可编写0至n个属性

    数据类型 变量名1;

    数据类型 变量名2;

    //可编写0至n个方法

    修饰符 返回值类型 方法名(参数){

    执行语句;

      }

    }

  (2)属性和功能统称为事物中的成员

    事物的成员分为两种:成员属性和成员功能;成员属性->成员变量,成员功能->成员方法

  (4)类是某一类事物的抽象描述,而对象用于表现现实中该类事物的个体。

  (5)局部变量和成员变量的区别

      1.定义位置上的区别
          成员变量,定义在类中,方法外
         局部变量,方法内,语句内
 
         2.作用域不同
         成员变量,作用范围是整个类
         局部变量,方法内,语句内

      3.默认值不同
         成员变量,有自己的默认值
         局部变量,没有默认值,不赋值不能用
 
      4.内存位置不同
         成员变量,跟随对象进入堆内存存储
         局部变量,跟随方法进入栈内存
 
       5.生命周期不同
         成员变量,跟随对象,在堆中存储,内存等待JVM清理,生命相对较长
         局部变量,跟随方法,方法出栈,生命相对较短

3.封装

  (1)面向对象共有三个特征:封装,继承,多态

  (2)封装的好处:

     1、提高了代码的复用性。

        2、隐藏了实现细节,还要对外提供可以访问的方式。便于调用者的使用。这是核心之一,也可以理解为就是封装的概念。

     3、提高了安全性。

  (3)类中不需要对外提供的内容都私有化,包括属性和方法。以后再描述事物,属性都私有化,并提供setXxx getXxx方法对其进行访问。

  (4)私有仅仅是封装的体现形式

4.this关键字:区分成员变量和局部变量

[Day9]面向对象的更多相关文章

  1. Day9 面向对象高级

    一.方法 方法包括:普通方法.静态方法和类方法,三种方法在内存中都归属于类,区别在于调用方式不同. 普通方法:由对象调用:至少一个self参数:执行普通方法时,自动将调用该方法的对象赋值给self: ...

  2. Day9 面向对象进阶

    @property装饰器 之前我们讨论过Python中属性和方法访问权限的问题,虽然我们不建议将属性设置为私有的,但是如果直接将属性暴露给外界也是有问题的,比如我们没有办法检查赋给属性的值是否有效.我 ...

  3. day9面向对象,多线程2

    一.获取全部qq成员头像 import os,requests,pymongo class Qqgroup(object):#定义一个类 #定义获取QQ群的请求rul,抓包获取 group_rul = ...

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

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

  5. Java相关英语单词

    day1 Java概述 掌握 .JDK abbr. Java开发工具包(Java Developer's Kit) (abbr.缩写) .JRE abbr. Java运行环境(Java Runtime ...

  6. 大数据技术之_16_Scala学习_04_函数式编程-基础+面向对象编程-基础

    第五章 函数式编程-基础5.1 函数式编程内容说明5.1.1 函数式编程内容5.1.2 函数式编程授课顺序5.2 函数式编程介绍5.2.1 几个概念的说明5.2.2 方法.函数.函数式编程和面向对象编 ...

  7. angular2系列教程(六)两种pipe:函数式编程与面向对象编程

    今天,我们要讲的是angualr2的pipe这个知识点. 例子

  8. 一起学 Java(二)面向对象

    一.方法函数 函数也称为方法,就是定义在类中的具有特定功能的一段独立代码.用于定义功能,提高代码的复用性. 函数的特点1> 定义函数可以将功能代码进行封装,便于对该功能进行复用:2> 函数 ...

  9. js面向对象学习 - 对象概念及创建对象

    原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...

随机推荐

  1. 巧用Openlayers4的Style

    原文:https://blog.csdn.net/gisshixisheng/article/details/80149087 概述 非常细化Openlayers4中的StyleFunction,因为 ...

  2. MySQL的reset master

    删除index文件中列出的所有二进制日志文件,将index文件清空,并创建一个新的二进制日志文件. 使用这个命令要很小心,以免丢失二进制日志文件数据. reset master也会清空gtid_pur ...

  3. Cmake find_package 需要指定具体的so

    需要使用cmake的find_package将boost库添加到项目中,通过cmake --help-module FindBoost 可以查看cmake引入Boost的帮助信息: 可以看到,Boot ...

  4. DB2修改自增主键起始值

    ALTER TABLE DB2INSTL.BT_AUDIT_COUNTY_DIFF_HISTORY_PX ALTER COLUMN ID RESTART WITH 18239

  5. 深入理解JDBC的超时设置

    恰当的JDBC超时设置能够有效地减少服务失效的时间.本文将对数据库的各种超时设置及其设置方法做介绍. 真实案例:应用服务器在遭到DDos攻击后无法响应 在遭到DDos攻击后,整个服务都垮掉了.由于第四 ...

  6. mongodb常用查询语法

    一.查询 find方法 db.collection_name.find(); 查询所有的结果: select * from users; db.users.find(); 指定返回那些列(键): se ...

  7. python 读取mysql数据至csv文件中,并发送邮件

    test 代码: #coding:utf-8 ''' Created on 2019年2月18日 @author: Administrator ''' import ConfigParser impo ...

  8. Kubernetes集群部署之四Master节点部署

    Kubernetes Master节点部署三个服务:kube-apiserver.kube-controller-manager.kube-scheduler和一个命令工具kubectl. Maste ...

  9. could not resolve property: leader_id of: pojo.Project

    https://www.cnblogs.com/zhaocundang/p/9211270.html hibernate 双向1对多 出现问题 外键解析错误! log4j:WARN No append ...

  10. How do I use IValidatableObject? 使用IValidatableObject添加自定义属性验证

    Here's how to accomplish what I was trying to do. Validatable class: public class ValidateMe : IVali ...