Java基础学习(二)

面向对象

  • 对象:客观存在的事物
  • 面向对象:人具体关注的事物的某些信息
  • 类:是模子,确定对象会拥有的特征(属性)和行为(方法)
  • 对象的属性:对象具有的各种特征
  • 对象的方法:对象能干什么

Java定义类

  1. 定义类名
  2. 编写类的属性
  3. 编写类的方法

Java对象的使用

  1. 创建个对象
    • 类名 对象名 = new 构造方法;
  2. 使用对象
    • 引用属性:对象名.属性名
    • 引用方法:对象名.方法名

Java成员变量和局部变量

  • 成员变量:定义在类中,用来描述对象将有什么
  • 局部变量:在类方法中定义,在方法中临时保存数据
  • 作用域
    • 局部:仅限于定义它的方法内
    • 成员:整个类的内部是可见的
  • 初始值
    • 局部:Java不会自动赋予初始值
    • 成员:Java会自动赋予初始值
  • 优先级
    • 两类变量同名时,局部变量有更高的优先级

Java构造方法

  • 目的:用来初始化的方法
  • 特点
    • 名称与类名相同,且没有返回值
    • 当没有指定构造方法时,系统自动生成一个无参的构造方法

Java static变量与方法

  • 使用static修饰的成员变量与方法能被所有的对象共享使用

Java static初始化块

  1. 在类加载时执行,且只会执行一次。而不同初始化块是在实例化时执行
  2. 只能给静态变量赋值

封装

  • 将类的某些信息隐藏在类内部,不允许外部程序直接访问
  • 好处
    1. 只能通过规定的方法访问数据
    2. 隐藏类的实例细节,方便修改与现实
  • 步骤
    1. 修改属性的可见性
    2. 创建get与set方法
    3. 在get与set方法中创建控制语句

Java中的包

  • 包的作用
    1. 管理Java文件
    2. 解决同名文件冲突
  • 包的命名规范
    • 全小写

Java访问修饰符

Java的this关键字

  • this.属性:调用当前对象的属性
  • this.方法:调用当前对象的方法

Java内部类

  • 定义:定义在一个类内部的类
  • 特点
    • 更好的封装
    • 内部类的方法可以访问外部类的所有数据
  • 分类
    • 成员内部类
      • 就是普通的内部类
      • 特点
        1. 外部类不能使用内部类的成员与方法
        2. 内部类优先使用自己的变量与方法,除非使用类名.this访问
      • 创建

  • 静态内部类
    • static修饰
    • 特点
      1. 只能使用new.外部类().成员变量来访问成员变量
      2. 访问外部类静态变量访问不变
  • 方法内部类
    • 定义在外部类方法中
    • 特点
      1. 只能在方法中创建与使用
      2. 不能有任何修饰符
  • 匿名类
    • 没有名字的内部类,多用于关注实现而不关注类的名称

继承

  • 类与类的关系,是一种is a的关系,Java中继承时单继承
  • 关键字:extends
  • 好处
    • 代码复用。单父类private变量无法直接使用
  • 方法的重写
    • 优先使用子类重写的方法
  • 继承的顺序
    1. 先初始化父类再初始化子类
    2. 先执行初始化对象中的属性,再执行构造方法中初始化
  • final关键字
    • 修饰的属性、方法、类、变量都不允许再被修改、继承。必须被初始化
  • super关键字
    • 代表类的父类对象
    • 特点
      • super()必须放在第一行
    • 应用
      • 显示使用父类构造方法

Java Object类

  • 所有类的父类,所有类默认继承Object类
  • 方法
    • toString()方法
      • 返回对象的哈希code码(对象地址字符串)
    • equals()方法
      • 比较对象的引用是否指向同一块内存地址

多态

  • 对象具有多种形态
  1. 引用的多态
    • 父类的引用可以指向本类
    • 父类的引用可以指向子类对象
  2. 方法的多态
    • 创建本类对象,调用本类方法
    • 创建子类对象,调用子类重写的方法

引用类型转换

  1. 向上类型转换
    • 隐式的\自动的类型转换
  2. 向下类型转换
    • 强制类型转换
  • 避免溢出问题:使用if(xxx instanced yyy)即可强转

Java抽象类

  • 关键字:abstract
  • 目的:约束子类应该包含怎样的方法,而不关心子类如何去实现

Java接口

  • 特征:内部全部是全局常量和公共的抽象方法组成
  • 概念:定义了一批类需要去遵循的规范,它不关心这些类的内部数据和方法的实现细节,只关心这些类里必须提供某些方法
  • 关键字:interface

  • 使用接口
    • 关键字:implements
    1. 接口引用指向一个实现了该接口的对象
    2. 与匿名内部类使用

  • 目的:描述两个不同类之间的共同特征

Java常用UML

  • 用例图
    • 表达系统如何满足所收集的业务规则,以及特定用户需求等信息

  • 序列图
    • 按照交互发生的一系列顺序,显示对象之间的这些交互

  • 类图
    • 类图,业务逻辑和所支持的结构一同被用于定义全部的代码结构

 

Java基础学习(2)的更多相关文章

  1. Java基础学习-- 继承 的简单总结

    代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...

  2. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...

  3. Java基础学习笔记总结

    Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...

  4. 转载-java基础学习汇总

    共2页: 1 2 下一页  Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3     Java基础学习总结——Java对象的序列化和 ...

  5. java基础学习总结——开篇

    java是我学习的第一门编程语言,当初学习java基础的时候下了不少功夫,趁着这段时间找工作之际,好好整理一下以前学习java基础时记录的笔记,当作是对java基础学习的一个总结吧,将每一个java的 ...

  6. Java基础学习笔记(一)

    Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...

  7. java基础学习总结——java环境变量配置(转)

    只为成功找方法,不为失败找借口! 永不放弃,一切皆有可能!!! java基础学习总结——java环境变量配置 前言 学习java的第一步就要搭建java的学习环境,首先是要安装 JDK,JDK安装好之 ...

  8. JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API

    森林森 一份耕耘,一份收获 博客园 首页 新随笔 联系 管理 订阅 随笔- 397  文章- 0  评论- 78  JAVA基础学习day16--集合三-Map.HashMap,TreeMap与常用A ...

  9. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  10. [转帖]java基础学习总结——多态(动态绑定)

    https://www.cnblogs.com/xdp-gacl/p/3644035.html 多态的概念 java基础学习总结——多态(动态绑定) 一.面向对象最核心的机制——动态绑定,也叫多态

随机推荐

  1. Spring Data Jpa (四)注解式查询方法

    详细讲解声明式的查询方法 1 @Query详解 使用命名查询为实体声明查询是一种有效的方法,对于少量查询很有效.一般只需要关心@Query里面的value和nativeQuery的值.使用声明式JPQ ...

  2. 错误 NETSDK1007 找不到“E:\Project\MyProject\MyProject.Common\MyProject.Utility.csproj”的项目信息。这可以指示缺少一个项目引用。 MyProject.Data C:\Program Files\dotnet\sdk\2.2.107\Sdks\Microsoft.NET.Sdk\targets\Microsof

    因为对MyProject.Data引用的项目MyProject.Common进行了重命名为MyProject.Utility,导致这个错误 解决办法: 1.找到MyProject.Data中的E:\P ...

  3. ACM ICPC 2011-2012 Northeastern European Regional Contest(NEERC)B Binary Encoding

    B: 现在有一种新的2进制表示法,要你求出0~m-1的每个数的表示. 规则如下:n 是满足 m<=2n 最小数. 而0~m-1的数只能够用n-1个位和n个位来表示. 对于n个位表示的数来说不能有 ...

  4. ES6 暂时性死区

    在ES6中,声明变量新增了两个关键字:let命令和const命令 如果在区块中存在let或者const命令时,任何变量都必须在声明之前使用,无论是区块外部的全局变量或者是区块内部的变量: /* 区块外 ...

  5. sklearn—支持向量机

    SVC介绍: 拟合出来的模型为一个超平面 解决与样本维数无关,适合做文本分类 解决小样本.非线性.高维 是用于分类.回归.孤立点检测的监督学习方法的集合. 优点: 有效的高维空间 维数大于样本数的时候 ...

  6. 用JS实现快速排序

    "快速排序"的思想很简单,整个排序过程只需要三步: (1)在数据集之中,选择一个元素作为"基准"(pivot). (2)所有小于"基准"的元 ...

  7. Linux_用户权限管理

    目录 目录 用户管理 useradd创建用户 userdel删除用户 usermod修改用户账号 passwd修改用户密码 用户权限设置 用户组管理 查看用户的属组 修改用户组gpasswd 为没有家 ...

  8. 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_07.环境搭建的注意事项

    2 resources下面创建目录要一级一级的创建,下面这个创建的就是一级目录而不是三级 在文件夹下看到的目录也是一级的 因此这里创建目录需要一个个的去创建 配置文件和dao类这两个目录要保持一致,这 ...

  9. HTML学习之==>CSS

    一.CSS选择器 id选择器 class选择器 标签选择器 标签层级选择器 class层级选择器 id层级选择器 id组合选择器 class组合选择器 属性选择器 <!DOCTYPE html& ...

  10. Call to undefined method app\models\User::find() yii2-admin

    这个问题可能大家遇到的不多. 分析原因 问题出在 config/web.php 这个配置文件里面 'components' => [ ..... 'user' => [ 'identity ...