当前位置: 首页 > news >正文

5.java不同方法的区别(构造方法,实例方法,类方法,static关键字)

文章目录

  • 1.Java中的方法
    • 1.2.构造方法
    • 1.2.实例方法
    • 1.3.类方法/静态方法
    • 1.4.static关键字

1.Java中的方法

在java中有三种类型的方法:构造方法,实例方法和类方法
如果我们要搞清楚构造方法为什么存在?那么首先我们得搞清楚构造方法的一切,不是吗?如果你要打败一个人,首先不是锻炼自己,而是了解对手,知己知彼,百战不殆。

1.2.构造方法

class Computer{
    /**
     * 构造方法
     */
    public Computer(){
    }
}

首先我们来看一下构造方法的特点:

  • 构造方法没有类型,这就意味着它不能返回值
  • 构造方法的名字必须与它所在的类的名字完全相同,这间接说明它和它的类是绑定的关系
  • 一个类中必须存在构造方法,如果没声明,编译器会自动的添加一个空的构造方法,这更加说明了它和类的绑定关系
  • 构造方法只能通过new调用

可以总结出:构造方法是类中一种特殊的方法,当创建实例化一个对象时需要用它的构造方法,可以间接的得出构造方法是创建一个实例对象时一定要用的用来获取内存空间的方法。

1.2.实例方法

class Computer{
    int add(int x,int y) {
        return x+y;
    }
}

有返回类型,可以通过实例对象引用,它可以操作类变量,简单来说实例方法在类实例化为对象后才能使用。

示例:

public class ObjectStudy {
    public static void main(String args[]){
        //通过调用构造方法将类Computer实例化
        Computer com = new Computer();
        int m = 100;
        int n = 200;
        //通过对象调用实例方法
        int result = com.add(m,n);
        result = com.add(120+m,n*10+8);
        System.out.println(result);
    }
}
class Computer{
    /**
     * 构造方法
     */
    public Computer(){
    }

    int add(int x,int y) {
        return x+y;
    }
}

1.3.类方法/静态方法

类方法是用static修饰的实例方法,也叫静态方法。

class Computer{
    /**
     * 类方法
     * @param x
     * @param y
     * @return
     */
    public static int mul(int x,int y){
        return x*y;
    }
}

静态方法只初始化一次,它的作用是可以直接通过类名直接引用类方法,类方法只能操作类变量,类方法可以通过类名直接使用。
示例:

public class ObjectStudy {
    public static void main(String args[]){
        int mulRes = Computer.mul(3,4);
    }
}
class Computer{
     /**
     * 类方法
     * @param x
     * @param y
     * @return
     */
    public static int mul(int x,int y){
        return x*y;
    }
}

1.4.static关键字

由关键字static修饰的变量,方法,代码块,类称之为静态变量静态方法静态代码块静态类

static属性属于类级别的,即由该类创建的所有实例对象共享同一个static属性。对于静态属性,我们可以通过两种方式访问:
1)直接通过类名.属性来使用
2)通过对象名.属性来使用
static方法只能访问static变量,非static方法可以访问static变量。

static变量和普通成员变量的区别:
1)不管有多少对象,static变量只有一份。对于每个对象操作的static变量都是同一个,但是普通的成员变量随着对象的建立,它也会被建立。 static变量在对象建立之前就被分配内存空间并被初始化了(第一次使用类的时候)

2)static变量是属于整个类的,也称之为类变量,而非静态变量是属于实例对象的,因此也称之为实例变量。

静态代码块无法通过类名调用,所以static代码块当类被第一次使用时(首次被加载)会被执行且只被执行一次,主要作用是实现static属性的初始化。

static内部类:属于整个外部类,而不是属于外部类的每个对象,它不能访问外部类的非static成员但可以访问外部类的static成员。

相关文章:

  • 无胁科技-TVD每日漏洞情报-2022-8-31
  • 力扣-221题 最大正方形(C++)- dp
  • 信号量(信号灯) -----//目的:实现共享内存的多个进程之间同步
  • JS解决contenteditable=“true“的光标位置放到最后
  • 使用Qt的WebSocket模块小常识
  • 前端ES5,ES6模块Demo
  • 2022/08/31 吉软 JSP的基本使用
  • Nginx--Rewrite重写
  • vue——响应式数据、双向数据绑定、filter过滤器、面试题
  • MindMaster思维导图及亿图图示会员 超值获取途径
  • STD::pair<>的使用
  • 公众号搜题功能接口API
  • python3-python中的GUI,Tkinter的使用,抓取小米应用商店应用列表名称
  • 公众号查题接口API
  • 提高「程序员」的思维方式
  • [PHP内核探索]PHP中的哈希表
  • Babel配置的不完全指南
  • egg(89)--egg之redis的发布和订阅
  • java中的hashCode
  • sessionStorage和localStorage
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 大主子表关联的性能优化方法
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 今年的LC3大会没了?
  • 聊聊flink的BlobWriter
  • 普通函数和构造函数的区别
  • 我看到的前端
  • 移动端高清、多屏适配方案
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • (C++)八皇后问题
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (力扣题库)跳跃游戏II(c++)
  • (四)模仿学习-完成后台管理页面查询
  • (转)项目管理杂谈-我所期望的新人
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .gitattributes 文件
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .pyc文件是什么?
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • []FET-430SIM508 研究日志 11.3.31
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [APIO2015]巴厘岛的雕塑
  • [bzoj 3124][sdoi 2013 省选] 直径
  • [CISCN2019 华东南赛区]Web11
  • [osgearth]通过API创建一个earth模型
  • [POI2006] OKR-Periods of Words——最大周期长度(扩展最小周期长度)
  • [PTA]数组循环右移
  • [SSD综述1.8] 固态存储市场发展分析与预测_固态存储技术发展方向(2022to2023)
  • [Usaco2012 Dec]First! BZOJ3012