java的面向对象编程(oop)——static概述及初始单例设计模式

这篇具有很好参考价值的文章主要介绍了java的面向对象编程(oop)——static概述及初始单例设计模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

过了入门阶段,开始学习进阶语法了。每天进步一点点,打好基础,daydayup!

什么是面向对象编程(oop),可以看这篇

java的面向对象编程(oop)概述及案例 

static概述

static的意思为静态,用于修饰成员变量及成员方法。

成员变量根据有无static可以分为两种——类变量及实例变量

public class demo {

            static  String name;//类变量
                    int age ;//实例变量


}
1,类变量

类变量属于类,与类一起加载一次,在内存中只有一份,可以被类和类的所有对象共享。

 使用方法:

1,加载类,使用变量引用

类名 变量名 = new 类名();
变量名.类变量=赋值;

例:根据上述demo类,编写如下

  demo sc = new demo();
        sc.name = "lala";
        System.out.println(sc.name);

2,通过类名直接引用类变量

类名.类变量=赋值;

 例:编写如下

  demo.name= "qingwa";
        System.out.println(demo.name);
使用注意:

由于只与类加载一次,所以当赋值后,新值会替换原来的值

 java的面向对象编程(oop)——static概述及初始单例设计模式,java,开发语言

 2,实例变量

 实例对象属于对象,每个对象都有一份,只能用对象访问

使用方法:

加载类,使用变量引用

类名 变量名 = new 类名();
变量名.类变量=赋值;

例:如下

  demo sc = new demo();
         sc.age = 17;
使用注意:

每次生成类就会加载一次,所以每次赋值都会生成新的数字

java的面向对象编程(oop)——static概述及初始单例设计模式,java,开发语言

方法根据有无static可以分为类方法及实例方法 

public class demo {
    public static void student(){//类方法

        System.out.println("hhhhhh");
    }


    public void student1(){//实例方法

        System.out.println("aaaaaaa");
    }
}
1,类方法:

有static修饰的成员方法,属于类方法

使用方法:

1,通过类名直接引用

类名.方法名

例:如下

 demo.student();

2,通过加载类再使用变量引用

类名 变量名 = new 类名();
变量名.方法名;

例:如下

 demo sc = new demo();
        sc.student();

例:两种方式都能输出方法 

java的面向对象编程(oop)——static概述及初始单例设计模式,java,开发语言 

2,实例方法:

 无static使用的成员方法,属于对象

使用方法: 

通过加载类再使用变量引用

类名 变量名 = new 类名();
变量名.方法名;

例:如下


        demo sd = new demo();
        sd.student1();

java的面向对象编程(oop)——static概述及初始单例设计模式,java,开发语言 

注:main方法也是一种类方法

 static使用场景

static方法可用来做工具类

什么是工具类

 工具类是一种类方法,每一个类方法都是一种功能;提高了代码的复用性,提高了开发效率

为什么用类方法创建工具类,而不是实例方法

实例方法需要创建对象来调用,会浪费内存

工具类定义时有什么要求

 由于工作类不需要创建对象,所以需要把构造器私有化

 代码块中static的作用

 代码块分为两种:静态代码块及实例代码块

1,静态代码块

格式:

static{}

特点:

类加载时会自动执行,由于类只加载一次,静态代码块也只执行一次

作用:

完成类的初始化 

 2,实体类代码块

 格式:

{}

 特点:

每次创建对象时,执行实例代码块,并在构造器前执行

作用:

和构造器一样,用来完成对象初始化的 

 设计模式

什么是设计模式

问题的最优解解决方案称为设计模式,设计模式有很多种,先了解单例设计模式。

 设计模式之一单例设计模式

把类的构造器私有;定义一个类变量储存类 的一个对象:提供一个类方法返回对象。其特点为:在获取类的对象时,对象已经创建好了。

注:频繁使用对象时用饿汉式单例;不频繁使用对象用懒汉式单例(可以节省内存)

例1:如下(饿汉式单例:先创建出了对象)

public class car {
   private static car a = new car();
//定义一个类,储存一个对象
    private car(){
//私有化构造器
    }
    public static car use(){
        return a;//返回对象
    }
}

例2:如下 (懒汉式单例:使用时在创建对象)

public class moive {
    private static moive a;//创建对象
    private moive(){
        
    }//私有化构造器
    private static moive use(){
        if (a==null){
            a=new moive();//当使用时再创建对象
        }
        return a;//返回值
    }
    
}

 文章来源地址https://www.toymoban.com/news/detail-803707.html

整理结束,撒花!!!! 

 

 

到了这里,关于java的面向对象编程(oop)——static概述及初始单例设计模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C/C++面向对象(OOP)编程-回调函数详解(回调函数、C/C++异步回调、函数指针)

    本文主要介绍回调函数的使用,包括函数指针、异步回调编程、主要通过详细的例子来指导在异步编程和事件编程中如何使用回调函数来实现。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:C/C++精进之路 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致

    2024年02月03日
    浏览(39)
  • 黑马Java——面向对象进阶(static&继承)

    目录 1.static静态变量 练习1:定义数组工具类 练习2:定义学生工具类 2.继承  练习:继承的练习(自己设计一个继承体系) 练习 利用方法的重写设计继承结构 练习:带有继承结构的标准Javabean类 3.多态   多态的综合练习 4.包和final 4.1包 4.2final  5.权限修饰符和代码块 5.1权

    2024年01月25日
    浏览(42)
  • 【java面向对象中static关键字】

    static修饰成员变量 static修饰成员变量的应用场景 static修饰成员方法 static修饰成员方法的应用场景 static的注意事项 static的应用知识:代码块 static的应用知识:单例设计模式 static静态的意思,可以修饰成员变量,成员方法; static修饰成员变量: 1.有static修饰的成员变量叫做

    2024年02月13日
    浏览(48)
  • java基础入门-05-【面向对象进阶(static&继承)】

    类的定义格式如下: 例如: 例如: 1.3.1 封装的步骤 1.使用 private 来修饰成员变量。 2.使用 public 修饰getter和setter方法。 1.3.2 封装的步骤实现 private修饰成员变量 public修饰getter和setter方法 1.4.1 构造方法的作用 在创建对象的时候,给成员变量进行初始化。 初始化即赋值的意

    2024年02月03日
    浏览(61)
  • Python 面向对象编程:类、对象、初始化和方法详解

    Python 是一种面向对象的编程语言。在 Python 中,几乎所有东西都是对象,都具有其属性和方法。 类似于对象构造函数或用于创建对象的“蓝图”的类。 要创建一个类,请使用 class: 示例,创建一个名为 MyClass 的类,其中包含一个名为 x 的属性: 现在,我们可以使用名

    2024年02月08日
    浏览(59)
  • C++进阶语法——OOP(面向对象)【学习笔记(四)】

    1、C++ OOP面向对象开发 1.1 类(classes)和对象(objects) 简单介绍一下类: C++ 类(classes) 创建对象⽤的蓝图(blueprint) ⽤户⾃定义的数据类型 有成员属性(data)和成员⽅法(methods) 可以隐藏属性和⽅法(private) 可以提供公共接⼝(public) 示例: Account, Student, std::vecto

    2024年02月07日
    浏览(52)
  • ObjectiveC-08-OOP面向对象程序设计-类的分离与组合

    本节用一简短的文章来说下是ObjectiveC中的类。类其实是OOP中的一个概念,概念上简单来讲类是它是一组关系密切属性的集合,所谓的关系就是对现实事物的抽象。 上面提到的关系包括很多种,比如has a, is a,has some等; 关系是一种抽象过程,源于对事务的理解,同时还要平

    2024年04月09日
    浏览(42)
  • 【JAVA杂货铺】一文带你走进面向对象编程的构造方法 | Java| 面向对象编程 | (中)

    🌈个人主页:  Aileen_0v0 🔥系列专栏: Java学习系列专栏 💫个人格言: \\\"没有罗马,那就自己创造罗马~\\\"   目录 回顾  构造方法  this 面试题 构造方法的类型  下节预告 代码块  之前我们学习了什么是类  什么是对象  什么是面向对象编程 定义类   构造方法 :它的方法名

    2024年02月05日
    浏览(55)
  • 【Java语言面向对象】(1)面向过程编程

    人机猜拳的第一版(下方是程序源码) 人机猜拳(面向过程版本) 三部分组成 初始化 游戏开始 游戏数据统计 逐步完成,并阶段测试。 面向过程整体的思路:做一件事,分为多个步骤,每个步骤之间是有序的,最后按序完成。 面向过程的优缺点: 优点:符合人类思维,简

    2023年04月09日
    浏览(54)
  • Java面向对象编程

    A.邮件服务的设置文件 B.DHCP的设置文件 C.DNS解析的设置文件 D.网络路由的设置文件 答案:C A.本机网关设置错误 B.本机没有正确设置DNS C.对方运行的是不同的操作系统 D.二层交换机故障 答案:A A.侵入目标服务器,获取重要数据 B.采用穷举的方式获得登录账号 C.发送无效的请求

    2024年02月07日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包