1、类变量

类变量是被类的所有实例共享的。

类变量具体放的位置在哪?在内存中的那个区域,这和jdk的版本是有关的

静态变量在类加载的时候就生成了,即使没有创建类实例也能访问,当然通过实例来实现

类变量定义
访问修饰符 static 类型 变量名

2、类方法

1、只需要在普通方法前面加上一个static就可以把该方法变成类方法

2、当方法中不涉及任何和对象相关的成员的时候把方法设置成静态方法可以提高效率

3、类方法中不允许使用和对象相关的关键字如this、super

类变量定义
访问修饰符 static 返回值类型 方法名(){}

我们需要记住静态方法只能访问静态成员,非静态可以访问静态和非静态

3、main方法

1、main方法是JVM在调用,访问权限必须是public

2、java虚拟机在调用main方法时不必实例化对象

使用细节

main方法可以直接使用静态成员,但不能直接使用非静态成员,如果要使用非静态成员需要实例化出来一个对象

代码块

代码块相当于构造器(或则说是对构造器的补充),可以做初始化操作

使用方法:当构造器中有多个重复语句时,使用比较方便

//修饰符可以写也可以不写,写的话就只能写static,后面的;可以写也可以不写
[修饰符]
{
};

使用细节:

1、如果修饰符是static,那么代码块在类加载时被执行,且只会被执行一次

2、类加载的时间:创建类的实例、创建子类的实例父类也会被加载、使用类的静

3、对象实例化时,类内部的执行顺序:1、静态代码块、静态属性初始化 2、普通代码块、普通属性初始化 3、构造器

4、先加载父类,再加载父类,再初始化父类再初始化子类

单例设计模式

保证一个类只有一个实例

单例模式分为两种一种是饿汉式、一种是懒汉式

1、将构造器私有化 2、在类的内部直接创建 3、提供一个static方法直接返回创建的对象

懒汉式和饿汉式的区别在于实例化的时间,饿汉式是在类加载的时候就创建了实例,懒汉式是在调用getInstance时才会创建实例

懒汉式不会造成资源的浪费

final

1、当一个类不希望被其他类继承时,可以在这个类前面加上final

2、当父类的一样方法不希望被重写时,可以用final修饰

3、当类的某个属性不希望被修改时,可以用final修饰,

其实可以这样理解当一个东西不希望被修改时,我们可以final修饰

使用细节

1、final修饰的属性被称为常量一般用大写字母+_组成,而且必须进行初始化

2、如果final修饰的是静态的,那么初始化时只能在定义时或则静态代码段

3、如果类不是final类,但是含有final方法,则该方法虽然不能重写,但却可以继承,子类使用。

4、如果类已经用final修饰了,就没有必要再用final修饰方法了。

5、包装类(Integer,Double,Float,Boolean等都是final),String也是final类。

Java面向对象(高级)的更多相关文章

  1. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:继承的应用

    class Array{ // 表示数组 private int temp[] ; // 整型数组 private int foot ; // 定义添加位置 public Array(int len) ...

  2. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:匿名内部类

    interface A{ public void printInfo() ; // } class B implements A{ // 实现接口 public void printInfo(){ S ...

  3. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:包装类

    public class WrapperDemo01{ public static void main(String args[]){ int x = 30 ; // 基本数据类型 Integer i ...

  4. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:Object类

    class Demo{ // 定义Demo类,实际上就是继承了Object类 }; public class ObjectDemo01{ public static void main(String ...

  5. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:宠物商店实例分析

    interface Pet{ // 定义宠物接口 public String getName() ; public String getColor() ; public int getAge() ; ...

  6. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:抽象类与接口的应用

    abstract class A{ // 定义抽象类A public abstract void print() ; // 定义抽象方法print() }; class B extends A { / ...

  7. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:instanceof关键字

    class A{ // 定义类A public void fun1(){ // 定义fun1()方法 System.out.println("A --> public void fun ...

  8. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:对象的多态性

    class A{ // 定义类A public void fun1(){ // 定义fun1()方法 System.out.println("A --> public void fun ...

  9. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:接口的基本实现

    interface A{ // 定义接口A public static final String AUTHOR = "李兴华" ; // 全局常量 public abstract ...

  10. 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:final关键字

    final class A{ // 使用final定义类,不能有子类 }; class B extends A{ // 错误,不能被继承 }; class A{ public final void p ...

随机推荐

  1. Nginx之数据流代理stream模块简介和使用 ---九五小庞

    一.stream模块简介   stream模块一般用于TCP/UDP数据流的代理和负载均衡,通过stream模块我们可以代理转发tcp报文.ngx_stream_core_module模块从1.9.0 ...

  2. 聊聊Spring注解@Transactional失效的那些事

    一.前言 emm,又又又踩坑啦.这次的需求主要是对逾期计算的需求任务进行优化,现有的计算任务运行时间太长了.简单描述下此次的问题:在项目中进行多个数据库执行操作时,我们期望的是将其整个封装成一个事务, ...

  3. 一分钟学一个 Linux 命令 - rm

    前言 大家好,我是 god23bin,欢迎回到咱们的<一分钟学一个 Linux 命令>系列,今天我要讲的是一个比较危险的命令,rm 命令,没错,你可以没听过 rm 命令,但是删库跑路你不可 ...

  4. 安装.NET Framework4.5以上版本受阻怎么办?

    安装和卸载 .NET Framework 受阻疑难解答 - .NET Framework | Microsoft Learn Windows RT 8.1.Windows 8.1 和 Windows ...

  5. mysql系列03---事务

    一.事务简介 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销 操作请求,即这些操作要么同时成功,要么同时失败. 二.事物的四大特性 一个事务具有A ...

  6. Python 潮流周刊第 13 期(2023-07-29)

    查看全文: https://pythoncat.top/posts/2023-07-29-weekly 文章&教程 1.Jupyter Notebook 7 隆重发布 (英) 2.Python ...

  7. rest-apiV2.0.0升级为simplest-api开源框架生态之simplest-jpa发布

    什么是 simplest simplest 追求存粹简单和极致. 旨在为项目快速开发提供一系列的基础能力,方便用户根据项目需求快速进行功能拓展 不在去关心一些繁琐.重复工作,而是把重点聚焦到业务. 前 ...

  8. 青少年CTF-Web-CheckMe01

    题目描述 半颗星的简单题,CheckMe01 启动题目,并访问. 解题过程 访问题目页面,提示我们需要输入一个Key. 随便输入一个值,发现出现了一些代码. 我们仔细阅读代码,来了解这段代码是干什么的 ...

  9. PoW是什么?

    PoW是什么? 工作量证明(proof of work,PoW)是一种用于确认和验证区块链交易和新区块有效性的共识算法.区块链中常见的工作量证明算法包括比特币的SHA-256.以太坊的Ethash.莱 ...

  10. 知识图谱(Knowledge Graph)根本概念

    目录 知识图谱 定义 基础概念: 知识图谱构建的关键技术 知识图谱的构建 实体命名识别 知识抽取 实体统一 指代消解 知识图谱的存储 RDF和图数据库的主要特点区别 知识图谱能干什么 反欺诈 不一致性 ...