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);
        }

    }

}
posted @ 2022-07-23 19:31  五笔输入法  阅读(52)  评论(0)    收藏  举报