JavaSE学习总结第09天_面向对象4】的更多相关文章

  09.01 final关键字引入 例: class Fu { public final void show() { System.out.println("访问底层资源"); } } class Zi extends Fu { public void show() { System.out.println("Zi show run"); } } class Demo { public static void main(String[] args) { Zi z…
  07.01 成员变量和局部变量的区别 1.在类中的位置不同 成员变量    类中方法外 局部变量    方法内或者方法声明上 2.在内存中的位置不同 成员变量   堆内存 局部变量   栈内存 3.生命周期不同 成员变量   随着对象的存在而存在,随着对象的消失而消失 局部变量   随着方法的调用而存在,随着方法的调用完毕而消失 4.初始化值不同 成员变量   有默认的初始化值 局部变量   没有默认的初始化值,必须先定义,赋值,才能使用. 07.02 方法的形式参数是类名的调用 例: cl…
  08.01 工具类中使用静态 例: class ArrayTool { //将构造方法私有,外界不能创建该类的对象 private ArrayTool(){} //遍历数组 public static void print(int[] arr) { System.out.print("["); for(int i = 0;i < arr.length;i++) { if(i == arr.length-1) { System.out.print(arr[i]+"]&…
  10.01 运动员和教练案例分析 教练和运动员案例:运动员分乒乓球运动员和篮球运动员,教练分乒乓球教练和篮球教练.为了出国交流,跟乒乓球相关的人员都需要学习英语. 分析: 10.02 运动员和教练案例实现 //定义一个说英语的接口 interface SpeakEnglish { //说英语 public abstract void speak(); } //定义人的抽象类 abstract class Person { private String name; private int ag…
  27.01  反射_类的加载概述和加载时机 类的加载:当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载:就是指将class文件读入内存,并为之创建一个Class对象.任何类被使用时系统都会建立一个Class对象. 连接 验证 是否有正确的内部结构,并和其他类协调一致 准备 负责为类的静态成员分配内存,并设置默认初始化值 解析 将类的二进制数据中的符号引用替换为直接引用 初始化: 创建类的实例 访问类的静态变量,或者为静态变量…
  24.01  JDK5之后的Lock锁的概述和使用 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock   public interface Lock:Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作.此实现允许更灵活的结构,可以具有差别很大的属性,可以支持多个相关的 Condition 对象.   例: public cla…
  11.01 常见开发工具介绍 1:操作系统自带的记事本软件 2:高级记事本软件例:Editplus,Notepad++,UltraEdit 3:集成开发环境 IDE(Integrated Development Environment) 这种软件是用于程序开发环境的应用程序,一般包括代码编辑器,编译器,调试器和图形界面工具. 集成了代码编写功能,分析功能,编译功能,调试功能等一体化的开发软件.具备这一特性的软件都可以叫做IDE. 例:JCreator,JBuilder,NetBeans,JD…
  23.01  多线程程序的引入 如果一个程序只有一个执行流程,所以这样的程序就是单线程程序. 如果一个程序有多条执行流程,那么,该程序就是多线程程序. 23.02  进程概述及多进程的意义 要想说线程,首先必须得知道进程,因为线程是依赖于进程存在的 进程:正在运行的程序,是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内存空间和系统资源.   多进程意义:多进程的作用不是提高执行速度,而是提高CPU的使用率 单进程计算机只能做一件事情.而我们现在的计算机都可以一边玩游戏(游戏进程)…
  26.01  网络编程概述 网络编程:就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换. 26.02  网络模型概述和图解 计算机网络之间以何种规则进行通信,就是网络模型研究问题. 网络模型一般是指 OSI(Open System Interconnection开放系统互连)参考模型 TCP/IP参考模型 OSI参考模型七层简述: 1.物理层:主要定义物理设备标准,如网线的接口类型.光纤的接口类型.各种传输介质的传输速率等.它的主要作用是传输比特流(就是由1.0转化为电流强弱来…
  15.01 对象数组的概述和使用 public class Student { // 成员变量 private String name; private int age; // 构造方法 public Student() { super(); } public Student(String name, int age) { super(); this.name = name; this.age = age; } // 成员方法 // getXxx()/setXxx() public Stri…
  16.01 ArrayList存储字符串并遍历 ArrayList类概述:底层数据结构是数组,查询快,增删慢,线程不安全,效率高 ArrayList类是List 接口的大小可变数组的实现.实现了所有可选列表操作,并允许包括 null在内的所有元素.除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小. 例: public class Practice { public static void main(String[] args) { ArrayList al =…
  17.01 ArrayList集合的toString()方法源码解析 代码: Collection c = new ArrayList(); c.add("hello"); c.add("world"); c.add("java");   System.out.println(c);    输出c时默认调用的是c的toString()方法 A:Collection c = new ArrayList(); 这是多态,所以输出c的 toStri…
  18.01 Map集合概述和特点 Map接口概述:将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值 Map接口和Collection接口的不同 1.Map是双列的,Collection是单列的 2.Map的键唯一,Collection的子体系Set是唯一的 3.Map集合的数据结构值针对键有效,跟值无关,Collection集合的数据结构是针对元素有效 18.02 Map集合的功能概述 成员方法: 1.V put(K key,V value): 将指定的值与此映射中的…
面向对象编程(Object Oriented Programming,OOP)是一种计算机模拟人类的自然思维方式的编程架构技术,解决了传统结构化开发方法中客观世界描述工具与软件结构的不一致性问题.Java是一种纯面向对象的语言,与C语言不一样他是面向过程的语言.通俗说Java程序主要是由类组成的,而C是由函数组成的. 面向对象非常重要,恰当的使用面向对象会使我们开发的系统拥有“可复用”.“可扩展”.“可维护”的特点.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.…
JavaSE学习笔记(3)---面向对象三大特性 面向对象的三大特征:继承.封装.多态 1.封装 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改.然后封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问.要访问该类的数据,必须通过指定的方式.适当的封装可以让代码更容易理解与维护,也加强了代码的安全性.其原则就是将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问. 1.封装的步骤 使用 private 关键字来修饰成员变量.…
JavaSE学习笔记(2)---面向对象基础 1.面向对象具有三大特征:封装性.继承性和多态性,而面向过程没有继承性和多态性,并且面向过程的封装只是封装功能,而面向对象可以封装数据和功能.所以面向对象优势更明显. 2.一个经典的比喻:面向对象是盖浇饭.面向过程是蛋炒饭.盖浇饭的好处就是"菜""饭"分离,从而提高了制作盖浇饭的灵活性.饭不满意就换饭,菜不满意换菜.用软件工程的专业术语就是"可维护性"比较好,"饭" 和"…
JavaSE学习笔记(13)---线程池.Lambda表达式 1.等待唤醒机制 线程间通信 概念:多个线程在处理同一个资源,但是处理的动作(线程的任务)却不相同. 比如:线程A用来生成包子的,线程B用来吃包子的,包子可以理解为同一资源,线程A与线程B处理的动作,一个是生产,一个是消费,那么线程A与线程B之间就存在线程通信问题. 为什么要处理线程间通信: 多个线程并发执行时, 在默认情况下CPU是随机切换线程的,当我们需要多个线程来共同完成一件任务,并且我们希望他们有规律的执行, 那么多线程之间需…
JavaSE学习笔记(8)---常用类 1.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指定父类,那么默认则继承自Object类.例如: public class MyClass /*extends Object*/ { // ... } 根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个.最常用的是其中的2个: p…
JavaSE学习笔记(6)---异常 ​ 软件程序在运行过程中,非常可能遇到问题,我们称之为异常,英文是:Exception,意思是例外.遇到这些例外情况,或者叫异常,我们怎么让写的程序做出合理的处理,安全的退出,而不至于程序崩溃呢? 1.异常产生的原因及使用原则 在 Java 中一个异常的产生,主要有如下三种原因: Java 内部错误发生异常,Java 虚拟机产生的异常. 编写的程序代码中的错误所产生的异常,例如空指针异常.数组越界异常等.这种异常称为未检査的异常,一般需要在某些类中集中处理这…
JavaSE学习笔记(4)---抽象类和接口 抽象方法和抽象类 ·抽象方法 使用abstract修饰的方法,没有方法体,只有声明.定义的是一种"规范",就是告诉子类必须要给抽象方法提供具体的实现. 特点 抽象方法必须声明在抽象类中. 抽象方法声明引入了一个新方法,但不提供该方法的实现,由于抽象方法不提供任何实际实现,因此抽象方法的方法体只包含一个分号. 声明抽象方法时,不能使用static 和private 修饰符. 当从抽象类派生一个非抽象类时,需要在非抽象类中重写抽象方法,以提供具…
javaSE学习笔记(1) 数据类型和运算符 1.注释可以提高程序的可读性.可划分为 单行注释 // 多行注释 /.../ 文档注释 /**...*/ 2.标识符的命名规则: 标识符必须以字母.下划线_.美元符号$开头. 标识符其它部分可以是字母.下划线"_".美元符"$"和数字的任意组合. Java 标识符大小写敏感,且长度无限制. 标识符不可以是Java的关键字. 3.标识符的命名规范: 表示类名的标识符:每个单词的首字母大写,如Man, GoodMan 表示方…
web前端学习python之第一章_基础语法(二) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈哈- 上一章内容:web前端学习python之第一章_基础语法(一) 函数的定义和使用 内置函数 python有很多内置的有用的函数,可以直接调用,参考网址:https://docs.python.org/3/library/functions.html#abs 数据类型转换 其他数据类型转为整数i…
web前端学习python之第一章_基础语法(一) 前言:最近新做了一个管理系统,前端已经基本完成, 但是后端人手不足没人给我写接口,自力更生丰衣足食, 所以决定自学python自己给自己写接口哈哈哈哈- 先从hello world开始 输出语法:print() 新建一个文件 hello.py //填写内容 print("hello , world") 运行该文件 这一点与Node很相似,Node运行文件的时候是node xx.js python运行是python xx.py 如果没有…
强化学习读书笔记 - 09 - on-policy预测的近似方法 参照 Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto c 2014, 2015, 2016 强化学习读书笔记 - 00 - 术语和数学符号 强化学习读书笔记 - 01 - 强化学习的问题 强化学习读书笔记 - 02 - 多臂老O虎O机问题 强化学习读书笔记 - 03 - 有限马尔科夫决策过程 强化学习读书笔记 - 04 -…
09.首页_项目结构建立和获取数据 在config下创建service_url.dart 用来配置我们后端接口的配置文件 一个变量存 接口地址,一个接口方法地址 所有后天请求数据的方法都放在这个文件夹下/lib/service文件夹 再创建serevice_method.dart文件 首先引入dio的包,再引入异步的包,再引入io的包. 最后引入service_url配置的文件 然后开始写获取首页主题内容的代码 home_page.dart页面重写 我们把请求的数据直接放在Text里面显示了.…
如需转载,请注明出处:Flutter学习笔记(7)--Dart异常处理 Dart作为高级语言,支持面向对象的很多特性,并且支持基于mixin的继承方式,基于mixin的继承方式是指:一个类可以继承自多个父类,相当于其他语言里的多继承.所有的类都有同一个基类Object,这和特性类似于Java语言,Java所有的类也都是继承自Object,也就是说一切皆对象. //实例化了一个User类的对象user ); 实例化成员变量 Class User{ String name;//name 成员变量 i…
javaSE学习笔记(17)---锁 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率.本文旨在对锁相关源码(本文中的源码来自JDK 8).使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景. Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识.下面给出本文内容的总体分类目录: 一.java中的锁 什么是锁 在计算机科学中,锁(lock)与互斥(mutex)是一种…
javaSE学习笔记(16)---网络编程 基本概念 如今,计算机已经成为人们学习.工作.生活必不可少的工具.我们利用计算机可以和亲朋好友网上聊天,也可以玩网游.发邮件等等,这些功能实现都离不开计算机网络.计算机网络实现了不同计算机之间的通信,这必须依靠编写网络程序来实现.下面,我们将教大家如何编写网络程序. 在学习编程之前,我们首先要了解关于网络通信的一些概念. ▪ 什么是计算机网络? 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网…
javaSE学习笔记(15) ---缓冲流.转换流.序列化流 缓冲流 昨天复习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等.这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,相当于是对基本流对象的一种增强. 概述 缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流:BufferedInputStream,BufferedOutput…
JavaSE学习笔记(14)---File类和IO流(字节流和字符流) File类 概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 构造方法 public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例. public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例. public File(F…