吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1750|回复: 9
收起左侧

[学习记录] 【自学笔记】 Java基础 - 抽象及一些拓展知识

[复制链接]
LongJL 发表于 2021-7-12 21:30
本帖最后由 LongJL 于 2021-7-12 21:32 编辑

抽象

概述

将共性的行为(方法)抽取到父类之后,发现该方法的实现逻辑无法在父类中给出具体明确,该方法就可以定义为抽象方法。

抽象类

如果一个类中存在抽象方法,那么该类就必须声明为抽象类

  • 抽象方法:就是加上abstract关键字,然后去掉大括号,直接分号结束
  • 抽象类:抽象方法所在得类,必须是抽象类才行。在class之前写上abstract即可。
public abstract class Animal {
    //这是一个抽象方法,代表吃东西,但是具体吃什么(大括号得内容)不确定。
    public abstract void eat();
}

在任何版本的Java中,接口都能定义抽象方法

格式:

  • public abstract 返回值类型 方法名称(参数列表);

注意事项:

  • 抽象类不能创建对象
  • 抽象类中有构造方法
  • 抽象类的子类
    A:必须要重写父类中所有的抽象方法
    B:可以把自己也变成一个抽象类
  • 抽象类种的方法
    抽象类中可以没有抽象方法,但是有抽象方法的类一点是抽象类

拓展

模板设计模式

  • 设计模式( Design pattern )是一套被反复使用,经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性 。

  • 模板设计模式:把抽象类整体可以看做成一个模板,模板中不能绝对的对象定义成抽象方法让使用模板的类(继承抽象类的累)去重写抽象方法实现需求

final关键字

用法

1.可以用来修饰一个类
格式:
public final class 类名称{
//....
}
含义:
当前这个类不能有任何子类。不能被继承
注意:
一个类如果是final那么其中的所有成员方法都无法覆盖重写
2.可以用来修饰一个方法
当final关键字用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写。
注意:对于类和方法来说,abstract关键字和final关键字不能同时使用,因为矛盾。
3.可以用来修饰一个局部变量
表面该变量是常量,不能再次被赋值
4.可以用来修饰一个成员变量
初始化:
1.在创建的时候,直接给值
2.在构造方法结束之前,完成赋值

注意事项:
1.一旦使用了final关键字修饰,说明不可改变
2.对于引用类型来说值可以改变,地址值不能改,但是地址值指向的内容可以改变!
3.常量的命名规范:如果是一个单词,所有字母大写,如果是多个单词,所有字母大写,但是中间需要使用"_"分割

局部代码块

位置:方法中定义
作用:限定变量的声明周期,及早释放,提供内存利用率

public class Test{
        public static void main(String[] args){
                {
                        int a = 10;
                        System.out.println(a); // 10
                }
                System.out.println(a); // 报错
        }
}

构造代码块

位置:类中方法外定义
特点:每次构造方法执行的时候,都会执行该代码块中的代码,并且在构造方法中执行前执行
作用:将多个构造方法中相同的代码,抽取到构造代码块中,提供代码的复用性

public class Test{
        public static void main(String[] args){
                Student stu1 = new Student();
                Student stu2 = new Student(10);

                // 我是构造代码块
                // 空参数构造方法
                // 我是构造代码块
                // 带参数构造方法
        }
}

class Student{
        {
                System.out.println("我是构造代码块"); 
        }
        public Student(){
                System.out.println("空参数构造方法"); 
        }

        public Student(int a){
                System.out.println("带参数构造方法"); 
        }
}

# 抽象.zip (1.9 KB, 下载次数: 6)

免费评分

参与人数 5吾爱币 +9 热心值 +5 收起 理由
MrHhy + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
星空下的流星 + 1 + 1 热心回复!
woyucheng + 1 + 1 谢谢@Thanks!
ZhiYing520 + 1 + 1 我很赞同!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| LongJL 发表于 2021-7-12 21:33
final关键字那一块的缩进我在编辑看是有的,不知道为什么在这就没了我用Typora编辑也是正常的
cjh1229 发表于 2021-7-12 22:27
fen885588 发表于 2021-7-12 23:15
最近也在自学JAVA,不知道楼主有什么好好的教程和书籍推荐吗?
 楼主| LongJL 发表于 2021-7-13 08:11
fen885588 发表于 2021-7-12 23:15
最近也在自学JAVA,不知道楼主有什么好好的教程和书籍推荐吗?

我现在看得是黑马得教程这个在52上面有得你可以找找,书籍得话我自己有一本Java从入门到精通,朋友推荐Java核心技术·卷 I(原书第11版) 和Java核心技术·卷 Ⅱ(原书第11版) 看着都还不错 这个在52上面也有PDF版得
一抹浅笑乱流年 发表于 2021-7-13 09:24
感谢分享,正想学习一下。
 楼主| LongJL 发表于 2021-7-13 09:52
一抹浅笑乱流年 发表于 2021-7-13 09:24
感谢分享,正想学习一下。

共同加油
wxfy2009 发表于 2021-7-13 12:40
目前正在自学中,感谢楼主分享。
fen885588 发表于 2021-7-13 13:07
LongJL 发表于 2021-7-13 08:11
我现在看得是黑马得教程这个在52上面有得你可以找找,书籍得话我自己有一本Java从入门到精通,朋友推荐Java ...

看教程 记笔记 这样子吗..
 楼主| LongJL 发表于 2021-7-13 14:19
fen885588 发表于 2021-7-13 13:07
看教程 记笔记 这样子吗..

有的时候去翻翻API的文档什么的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-1 07:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表