Java Day8
Java Day81.访问权限public公告的,所有包内包外都可以访问的
default包访问权限,在自己包内可以随意访问
private私有的,自己类可访问
2.getter & setter
setter:主要给成员变量赋值的成员方法,做一定保护;
getter:从成员变量中获取值的成员方法;
通过成员方法访问或更改,给成员属性给予保护,使程序更加健壮
Idea 可以通过getter和setter 自动添加其方法
3.继承
子类自动拥有父类中除了私有内容外的其他所有
继承:
public class 子类 extends 父类{
}
私有内容不能被继承
类不能加private修饰
作用:简化代码的开发
子类是对父类进行扩展
思想:子类对父类的继承,将某种具有部分相同属性功能的类再进行抽象,建立一个共有属性的类,其余子类通过继承该父类,从而使开发变得更为简洁明了
4.super
变量的查找顺序,先找自己类然后再找父类,就近原则;
如果想要访问父类中的内容
super.*; 可访问子类中与父类重名的内容
在创建每一个子类对象时,编译器并为其分配内 ...
Java基础9
Java Day91.final 关键字final不可更改
final修饰的成员、局部变量,无法改变,又称为常量
被final修饰的方法不可以被重写
被final修饰的类无法更改
12345678910111213public class Final { final String name = "小张"; public static void main(String[] args) { Final f = new Final(); final int a = 10; a = 1; f.name = "2333"; }}//编译器报错
局部变量和成员变量name 都无法更改
1234567891011121314151617181920212223public class Final { final String name = "小张"; public final ...
GUI
图形化界面AWTComponent 组件基类Container继承体系 容器
组件,容器,布局
设置组件
对容器根的操作
一个简单的界面12345678910import java.awt.*;public class Main { public static void main(String[] args) { Frame frame = new Frame(); frame.setLocation(100, 100); frame.setSize(500,500); //设置窗口大小 frame.setVisible(true);//窗口可见 }}
组件和容器Panel
123456789101112131415161718import java.awt.*;public class Main { public static void main(String[] args) { Frame frame = new Frame(& ...
线性表、栈、字符匹配
数据结构一、概念和术语
数据结构是一门研究非数值计算的程序的操作对象,以及他们之间关系和操作问题的学科。
数据:
能输入到计算机
能被计算机处理
int ,字符串, 图片等等都属于数据
数据元素:
组成数据的基本单位
对象就是一个数据元素
数据项:
组成数据元素的基本单位,是不可分割的最小单位
数据对象:(是性质相同的数据元素对象集合,是数据的子集)
数据结构:是相互之间存在一种或多种特定关系的数据元素集合。
2.逻辑结构和物理结构
逻辑结构 顾名思义是指数据对象中数据元素之间的相互关系 (实例化类的相互关系)
集合结构 同一个集合 没有什么关系 终生平等
线性结构 一一对应
树形结构 各个数据元素之间存在一种多对多的关系
图形结构 数据元素是多对多的关系
物理结构 (内存中的排列)
顺序存储结构 数组就是一种典型的
链式存储结构
总结
类(数据对象)
对象(数据元素)
元数据 (数据项)
元数据2
对象2..
二、算法以后再填
三、线性表List1.顺序存储结构线性表:0个或者多个数据元素组成的有序序列
最简单的一种数据结构 ...
集合
Java基础ArrayList
线程不安全
底层是数组 实现的, 无参定长10,空间不够1.5倍扩容,指定一个int值,以这个值为基础扩容
Vector
线程安全 sycnchroniszed
底层也是数组
扩容不指定默认2倍
LinkList
线程不安全
底层是双向链表和双端队列
HashSet
不错存放重复的元素 实现了接口Set都一个样
接口对象存放数据是无序的
底层是链表+数组+红黑树
1234567891011121314151617181920212223242526272829303132333435363738394041424344import java.util.HashSet;import java.util.Objects;public class Demo10 { public static void main(String[] args) { HashSet test = new HashSet(); test.add(new Student("A", 123)); ...
树
数据结构(2)六、数Tree数的表示方法双亲表示法每个结点除了自身的数据域外,添加一个指示器,指向双亲在数组中的位置(链式存储结构则是指针域)
根结点的为-1 链表则是null
灵魂画师
index
data
parent
0
A
-1
1
B
0
2
C
0
3
D
1
4
E
1
5
F
2
…
通过上述数组表我们找到当前结点的双亲结点时间复杂度为O(1) ,但如果要查找孩子需要遍历整个树
如果我们需要知道结点的孩子肿么办,再新增一个firstchild 长子域 左边孩子 不存在同样可以值设置为-1
index
data
parent
firstchild
0
A
-1
1
1
B
0
3
2
C
0
6
3
D
1
8
4
E
1
-1
5
F
2
-1
…
如果你还想知道一个结点的更多信息 比如 右孩子 ,兄弟 只需在数组接触上继续添加这些域即可
孩子表示法
data
chiled head 孩子链表的头指针
每个结点指针域个数等于该结点的度,顺序结构单独定义一个数组长度为所有 ...