2022-07-23第一小组 孔海波 学习笔记
今日学习情况:掌握
心情:80%
今天学习了final和Object类,内容不是很难理解,老师给了我们大量的时间进行实例练习。
Java基础
————面向对象
final关键字
final关键字可以修饰类、方法、变量。当修饰类时表示这个类是最终类,不可以再被继承;若修饰方法则该方法也不允许被重写, @Override方法的重写的注解;在重载时添加注解若修饰变量则代表着这个变量不可再赋值,也就是变为常量,通常我们将常量的所有字母都大写,遇到多个单词时用下划线连接,常量必须在声明时赋值。
Object类
Object类是所有类的祖先类,也就是说所有类都是继承或间接继承Object。他的大部分方法都会被子类重写,我们介绍几个方法:
hashCode();返回值实际上就是对象运行时的对象地址。
equals();判断地址是否相等,子类重写。
toString();把对象地址转化为字符串,当直接使用对象时会默认使用toString方法。子类重写。
finalize().垃圾回收的方法。
堆——括号匹配问题
package Stack;
public class Demo {
public static void main(String[] args) {
Stack stack = new Stack();
System.out.println("未插入数据时栈中元素个数:" + stack.size());
stack.push("数据1");
stack.push("数据2");
stack.push("数据3");
stack.push("数据4");
stack.push("数据5");
System.out.println("依次插入数据1~5后栈中元素个数:" + stack.size());
System.out.println("栈是否为空:" + stack.isEmpty());
System.out.println("第一个出栈的元素:" + stack.pop());
System.out.println("出栈一个后栈中元素个数:" + stack.size());
System.out.println("第二个出栈的元素:" + stack.pop());
System.out.println("第三个出栈的元素:" + stack.pop());
System.out.println("第四个出栈的元素:" + stack.pop());
System.out.println("插入数据6");
stack.push("数据6");
System.out.println("第五个出栈的元素:" + stack.pop());
System.out.println("第六个出栈的元素:" + stack.pop());
System.out.println("栈是否为空:" + stack.isEmpty());
System.out.println("全部出栈后栈中元素个数:" + stack.size());
System.out.println("*************括号匹配问题*************");
match("我(是)中((国人))");
System.out.println("__________________________");
match("(我(是)中((国人))");
}
public static void match(String s){
Stack stack = new Stack();
for (int i = 0; i < s.length(); i++) {
if(s.charAt(i) == '(')
stack.push("(");
else if (s.charAt(i) == ')') {
stack.pop();
}
}
if(stack.isEmpty())
System.out.println(s + "——正确匹配");
else
System.out.println(s + "——错误匹配");
}
}
class Stack{
private Node head;
private int N = 0;
public int size(){
return N;
}
public boolean isEmpty(){
return head == null;
}
public void push(String data){
if(head == null){
head = new Node(data);
N++;
}
else head.push(data);
}
public String pop(){
if(head != null){
String tempData = head.data;
head = head.next;
N--;
return tempData;
}
return null;
}
class Node{
private String data;
private Node next;
public Node(){}
public Node(String data){
this.data = data;
}
public void push(String data){
if(this.next == null){
Node node = new Node(data);
node.next = head;
head = node;
N++;
}
else this.next.push(data);
}
}
}

浙公网安备 33010602011771号