Day 3 狂神说Java基础笔记(方法01-06,数组01-09,面向对象01-14)
一、方法
01-方法
一个方法一个功能,main()函数保持整洁
02-定义与调用
Java只有值传递
作业:值传递与引用传递区别
?调用的两种方法
03-方法的重载
方法名称相同,形参不同(个数、类型、顺序);
返回值可以不同。
04-命令行传参
args[ ]
javac
05-可变参数
JDK 1.5后可用
一个方法中只能指定一个可变参数,且必须是最后一个参数
int... i
06-递归
边界条件,前阶段,返回阶段
Java使用栈机制
占用内存较高
二、数组
01-概述
有序集合
长度固定
02-声明与创建
03-三种初始化及内存分析
- 堆: 存放new的对象及数组; 可以被所有的线程共享,不会存放别的对象引用
- 栈:存放基本变量类型(会包含这个基本类型的具体数值);引用对象的变量(会存放这个引用在堆里面的具体地址)
- 方法区:可以被所有线程共享;包含了所有的class和static变量。
?堆大
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化
04-下标越界
数组是对象,每个元素相当于该对象的成员变量
Java中,对象在堆中
05-使用
06-多维数组
07- Arrays
fill
sort
equals
binarySearch
08-冒泡排序
作业:八大排序算法
冒泡优化:内层循环内置flag,12:26s
09-稀疏数组
行,列,有效值个数
有效值行,有效值列,有效值
三、面向对象(OOP)
01- 概述
以类的方式组织代码,以对象的方式封装数据
封装;继承;多态
02-方法
03-方法的调用
static 静态方法: 类名.方法名,和类一起存在
非静态方法:先实例化,类实例化后存在
04-类与对象的创建
new分配内存空间,默认赋值,构造器调用
05-构造器
和类的名字相同;没有返回值;
重载
alt+insert:快捷构造
06-创建对象内存分析
再看
栈:方法,变量的引用
堆:对象
07-小结
引用:栈–>堆
08-封装
高内聚,低耦合
类的内部数据操作细节自己完成;仅暴露少量的方法给外部使用。
属性私有,get/set
set可以做安全性的判断
09-继承
extends
Java中只有单继承,没有多继承
除了继承,类间关系还有依赖、组合、聚合
public;protected;default;private;
作业:继承权限,类
Ctrl+H 打开继承结构
Java中所有类都默认直接或间接继承自Object
有参构造后,默认无参没有了
10-Super
- 调用父类的构造方法,[显式 super()]必须在子类的第一行
//隐式:调用了父类的无参构造
==?==为什么,内存图 - super只出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法,06:22s
11-重写*
重写都是方法的重写,与属性无关
需要有继承关系,子类重写父类方法
- 方法名必须相同
- 参数列表必须相同
- 修饰符:范围可以扩大
- 抛出的异常:范围可以缩小,不能扩大:ClassNotFoundException–>Exception(大,不可)
A a=new A(); B b=new A();
静态方法:父类的引用指向了子类;方法的调用 只和定义的数据类型有关
非静态方法:和右侧有关,子类重写了父类的方法.
12-多态*
左边决定可以使用的方法
都有使用子类的重载
Father f1 = new Son();
final、static、private类不可以进行多态
13-instanceof和类型转换
判断类的类型,父类引用引向子类对象;父类转换为子类,强制转换
14-static
静态代码块 优先于 匿名代码块 优先于构造方法
且静态代码块只执行一次
final不能被继承
- Java基础:Day05笔记内容 (方法、数组)
- 讲师笔记,Java基础学习之路之day01——学习Java
- 讲师笔记,Java基础学习之路之day21——IO流的方法
- Java基础笔记:Day_06 类、构造器和面向对象
- Java基础笔记:Day_09 单例、final、抽象方法和抽象类
- java基础(个人学习笔记)E 合并两个数组的方法
- 01_Java语言基础部分(数据类型与表达式、流程控制语句、数组与方法)
- Java 数组、方法、基础笔记
- Java基础知识强化之集合框架笔记01:集合的由来与数组的区别
- Java基础之方法、数组、面向对象
- Java基础学习笔记09(面向对象)
- JAVA基础学习笔记 day006_03数组相关方法
- Java基础笔记:Day_14 多线程与synchronized
- Java基础复习笔记 数组,内存形式,父子,内存控制01
- 黑马程序员_01_Java语言基础部分(数据类型与表达式、流程控制语句、数组与方法)
- 【黑马程序员】方法、数组、面向对象、封装、继承——Java复习笔记
- JAVA基础学习笔记 day003_01 Scanner语法使用方法
- JAVA基础学习笔记 day006_01数组的初始化的几种方式及其注意点
- Java基础笔记:Day_05 数组高级
- Java基础笔记(二)---数组与方法