• 学习线路

      初学:
    熟悉语法
    进阶:
    1、23种设计模式
    2、6中开发原则
    高级:
    1、优化
    2、架构
    3、安全

概念

	类:一类具有相同特性的事物的抽象描述,用一个java类表示。
成员变量:抽取的属性。
方法:抽取的行为。
对象:是类的实体。(object/instance)

类与对象

	1、如何声明一个类
[public 等修饰符] class 类名称{
类成员列表;
}
2、创建对象
类名称 对象名 = new 类名称();
3、属性:位置在类中,方法外 为属性赋值:对象.属性 = 值;
(1)属性有默认值
和数组的元素的默认值是一样的:
byte,short,int,long:0
float,double:0.0
char:\u0000
boolean:false
引用数据类型:null
  • 权限修饰符(*****)
修饰符 本类 本包 子类 任何地方 可修饰
private ✔ ✘ ✘ ✘ 属性、方法、内部类、构造器
default ✔ ✔ ✘ ✘ 属性、方法、内部类、构造器、外部类
protected ✔ ✔ ✔ ✘ 属性、方法、内部类、构造器
public ✔ ✔ ✔ ✔ 属性、方法、内部类、构造器、外部类

方法

  • 声明方法

      1、 声明方法
    
      	1、先声明后使用
    2、位置:类中方法外
    3、格式:
    [修饰符] 返回值类型 方法名(形参列表){
    方法体(实现该功能的代码);
    }
    2、形参:定义/声明方法时()中的参数。
    实参:调用方法时传入的参数。
    3、形参是基本数据类型时,传值;当是引用数据类型时,传引用(地址)

注意:String对象不可变,还有包装类等对象

  • 调用方法

      1、静态方法
    非本类 类名.方法名();
    本类 方法名();
    2、非静态方法
    对象.方法名();
  • 方法的特点

      1、先声明后调用
    2、不调用不执行,调用一次执行一次
    3、方法最多有一个返回值;可以没有返回值,当返回值数量大于1时,用数组或者集合装起来后,返回
    4、方法可以嵌套调用,但是不可以嵌套定义。
  • 方法的重载(Overload)

      定义:(1)相同类中的两个或多个方法(2)方法名相同,形参列表不同(类型、个数、顺序)(3)与返回值类型无关。
  • 命令行参数:给主方法(main)传递实参。

      	cmd 模式下》》   java   类名称   实参1  实参2  实参3 ....
  • 可变参数

      某个方法调用时,实参的个数是可变的。
    (1)一个方法最多有一个可变参数
    (2)必须放在最后
    public int qiuhe(int... num){//num本质是数组
    int sum = 0;
    for(int i=0;i<num.length;i++){
    sum += num[i];
    }
    }
    如何调用?
    (1)传递相同类型的参数0~n个
    (2)可以传递相同类型的数组

构造器

1、有什么作用
(1)创建对象时,并为属性赋值。
2、有什么特点
(1)所有类都有构造器,如果这个类没有显示声明构造器,将默认有无参构造,若加了构造器,则不再有无参构造器。
(2)构造器可以重载
(3)构造器名和类名相同
3、如何声明
【修饰符】 构造器名(){}
【修饰符】 构造器名(形参列表){}
4、怎么调用构造器
在非本类中 类名 变量名 = new 类名();

this关键字

用法:
this.属性;
当成员变量与局部变量重名时,成员变量前加this,加以区分。
this.方法();
this代表当前对象。
this();
表示访问本类的无参构造,有形参时,访问有参构造。必须在构造器中第一句。

super关键字

	super.属性
当子类与父类的某个可见的属性“重名”时,用“super.”表示访问父类的属性
super.方法();
当子类需要调用父类重写的方法时,需要加"super."
super();
只能出现在子类构造器的首行。
默认出现的是super(),表示调用父类的无参构造器。你写不写我都存在。
如果父类没有无参构造,必须在子类的构造器首行,用super(实参列表)调用父类的构造器。

包的概念 package

  • 作用

      1、避免类的重名
    2、用于控制访问权限
    3、划分项目的结构层次,通常将功能相近的类划分到同一个包中
  • 规则

      1、用package定义包,位于源文件首部
    2、包的命名规范 xxx.yyy.zzz(通常以所在公司的域名的倒置)
  • 导包 import

      1、位置:package和class之间
    2、import 包名.类名;
    import 包名.*;

构造器

1、每个类都有构造器
2、当没有显示声明构造器时,默认提供无参的构造器;当显示声明构造器时,则不再提供无参构造器,若需要还需显示声明。 构造器的特点
1、没有返回值
2、构造方法名和类名一样
3、可以重载

4面向对象(OOP)的更多相关文章

  1. PHP面向对象(OOP)编程入门教程

    面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就 ...

  2. 【PHP面向对象(OOP)编程入门教程】1.什么是面向对象?

    面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成 ...

  3. php面向对象(OOP)编程完全教程

    摘自:http://www.php-note.com/article/detail/41 面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行P ...

  4. 拖拽系列二、利用JS面向对象OOP思想实现拖拽封装

    接着上一篇拖拽系列一.JavaScript实现简单的拖拽效果这一篇博客将接着对上一节实现代码利用JS面向对象(OOP)思维对上一节代码进行封装; 使其模块化.避免全局函数污染.方便后期维护和调用:写到 ...

  5. 面向对象(OOP)基本概念

    面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...

  6. python-面向对象-01_面向对象(OOP)基本概念

    面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...

  7. [Python_4] Python 面向对象(OOP)

    0. 说明 Python 面向对象(OOP) 笔记.迭代磁盘文件.析构函数.内置方法.多重继承.异常处理 参考 Python面向对象 1. 面向对象 # -*-coding:utf-8-*- &quo ...

  8. PHP面向对象(OOP)编程入门教程链接

    PHP官方学习OOP: http://php.net/manual/zh/oop5.intro.php 从其他博主学习:(以下链接来源: http://blog.snsgou.com/post-41. ...

  9. Python3中面向对象 OOP

    Python3中面向对象 OOP 定义: python中通过关键字 class 实现类的定义: class ClassName(object): pass 获取成员变量:ClassName.变量名 修 ...

  10. 如何吃透Python的面向对象(OOP)

    ​本篇可乐和大家一起来吃透 Python 的面向对象,类和实例. 面向对象(OOP) 解释:面向对象它是一种编程的思想,将现实事物抽象化为编程对象. 举例说明:喝可乐 ① 选择自己根据配方买对应的材料 ...

随机推荐

  1. P1101 单词方阵 (单词方阵)

    思路:就是白白的模拟 #include<iostream> using namespace std; ][]; ][]; char kk[] = "yizhong"; ...

  2. (四)surging 微服务框架使用系列之网关 转载

    一.什么是API网关 API网关是一个服务器,是系统对外的唯一入口.API网关封装了系统内部架构,为每个客户端提供一个定制的API.API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入 ...

  3. P1440 求m区间内的最小值--洛谷luogu

    题目描述 一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值.若前面的数不足m项则从第1个数开始,若前面没有数则输出0. 输入输出格式 输入格式: 第一行两个 ...

  4. NOIP2018初赛游记

    NOIP2018初赛游记 (编辑中)

  5. 工具 Windows安装Anaconda

    下载 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 安装 1.勾选添加Anaconda到PATH环境变量 2.配置清华镜像 conda ...

  6. 2018-2019-3《Java程序设计》第二周学习总结

    学号20175329 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结      第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨 ...

  7. Java NIO3:缓冲区Buffer

    在上一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如 ...

  8. Vue2.x源码学习笔记-Vue构造函数

    我们知道使用vue.js开发应用时,都是new Vue({}/*options*/) 那Vue构造函数上有哪些静态属性和方法呢?其原型上又有哪些方法呢? 一般我都会在浏览器中输入Vue来look se ...

  9. Netty入门(二)之PC聊天室

    参看Netty入门(一):Netty入门(一)之webSocket聊天室 Netty4.X下载地址:http://netty.io/downloads.html 一:服务端 1.SimpleChatS ...

  10. .NET Core Community 第二个千星项目诞生:Util

    本文所有打赏将全数捐赠于 NCC(NCC 的资金目前由 倾竹大人 负责管理),请注明捐赠于 NCC.捐赠情况将由倾竹大人另行公示. 项目简介 作为一款旨在提升小型团队开发输出能力.提高团队效率.降低项 ...