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. P2709 小B的询问题解

    本题需要用到莫队算法 关于莫队算法 莫队算法是一种离线算法,适用于序列中统计区间特定的目标的问题. 时间复杂度通常是 \(O(n \sqrt n)\) 或更高. P2709 小B的询问 点击查看原题 ...

  2. 【Spring boot】 @Value注解

    一.不通过配置文件的注入属性 1.1 注入普通字符串 直接附在属性名上,在 Bean 初始化时,会赋初始值 @Value("normal") private String norm ...

  3. Centos 8 时钟同步

    Centos 8 时钟同步使用的是 chrony 参考:https://www.cnblogs.com/my-show-time/p/14658895.html $ rpm -qa | grep ch ...

  4. quarkus实战之七:使用配置

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<quarkus实战>系列 ...

  5. 【go语言】2.3.1 错误处理的基本概念

    在 Go 语言中,错误处理是通过返回错误值进行的,而不是像一些其他语言那样通过抛出和捕获异常.Go 语言有一个内置的接口类型 error,专门用于处理错误. error 接口 error 是一个内置的 ...

  6. 第十六届全国大学生 信息安全竞赛创新实践能力赛wp

    这是我第一次参加ctf,有许多东西都还不会,感觉有一些题挺有趣的,多积累积累经验吧. crypto Sign_in_passwd 下发了一个叫flag的文件,用记事本打开发现是两行加密,第一行看着像b ...

  7. Java 生态需要新鲜的血液、需要狂飙的刺激。Solon v2.4.1 发布

    Solon 是什么开源项目? 一个,Java 新的生态型应用开发框架.它从零开始构建,有自己的标准规范与开放生态(历时五年,已有全球第二级别的生态规模).与其他框架相比,它解决了两个重要的痛点:启动慢 ...

  8. 探究eFuse:硬件保障与系统安全的核心

    探究eFuse:硬件保障与系统安全的核心 图1: 编程熔断的 eFuse eFUSE的全名是"Electrically Programmable Read-Only Memory Fuse& ...

  9. 这些年写过的花式sql - 第3句 今日流失用户

    第3句 今日流失用户 需求: 当日流失用户的定义:昨天登录的,今天没登录的用户数 有一张用户登录日志表,有字段 date_stamp(日期时间戳),用户id(uid).如果用户在某天登录了,该表会有一 ...

  10. 【pytorch】ResNet源码解读和基于迁移学习的实战

    "工欲善其事,必先利其器",掌握ResNet网络有必要先了解其原理和源码.本文分别从原理.源码.运用三个方面出发行文,先对ResNet原理进行阐述,然后对pytorch中的源码进行 ...