静态方法的使用
静态方法与静态变量一样,属于类本身,而不属于那个类的一个对象。调用一个被定义为static的方法,可以通过在它前面加上这个类的名称,也可以像调用非静态方法一样通过类对象调用。
实例方法必须通过类的实例来使用。实例方法可以使用类的非静态成员,也可以使用类的静态成员。
类的静态方法,静态变量是在类装载的时候装载的。但是要特别注意,类的静态变量是该类的对象所共有的,即是所有对象共享变量。所以建议尽量少用静态变量。尽量在静态方法中使用内部变量
方法调用
静态方法与实例方法唯一不同的,就是静态方法在返回类型前加static关键字。静态方法的调用有两种途径:
(1)通过类的实例对象去调用
调用格式为: 对象名.方法名
(2) 通过类名直接调用
调用格式为: 类名::方法名

静态方法和非静态方法的区别总结如下:
1、静态方法属于类所有,类实例化前即可使用;
2、非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员;
3、因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存;
4、static内部只能出现static变量和其他static方法!而且static方法中还不能使用this等关键字,因为它是属于整个类;
5、静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁;
6、静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。
主要区别:静态方法在创建对象前就可以使用了,非静态方法必须通过new出来的对象调用。
静态方法与实例方法在性能和占用内存上没有明显的区别,是否声明为静态方法需要从类型的非静态字段、事件、面向对象扩展和多态这三方面来考虑。
构造器:
定义:
一种只用来初始化对象信息的特殊方法,
作用:
初始化对象信息( 不是用来创建对象 )
格式:
修饰符 类名([参数列表]){

}
只能跟随new一起使用,没有办法调用
构造器不能和static(因为static跟随类), fianl ,abstract 一起使用
如果没有自定义构造器,编译器会自动为你添加一个空构造(默认)
如果存在自定义构造器,编译器都不会再为你提供任何构造器
构造器也是方法。
构造器没有返回值
构造器与类统名
每个类可以有一个以上的构造器
构造器可以有0个、1个或多个参数

构造方法是一种特殊的成员方法,它的定义方式与普通方法类似,其语法如下所示:

class 类名称 {

访问权限 类名称(类型1 参数1,类型2 参数2,…) { // 构造方法没有返回值
程序语句 ;
}
}

在使用构造方法的时候请注意以下几点:

1 它具有与类名相同的名称 。

2 它没有返回值,也没有返回类型。

3 每一个类可以有多个构造方法。

4 构造方法在创建对象时自动执行,一般不能显式地直接调用。

构造函数
是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

特点:
百度百科

浅拷贝:原始类型为值传递,对象类型仍为引用传递。

深拷贝(对象/数组):所有元素或属性均完全复制,与原对象完全脱离,也就是说所有对于新对象的修改都不会反映到原对象中。 显然,浅拷贝会带来一个很大的问题。就是,如果我复制的值是一个引用地址,那么我通过一个变量去修改这个对象,会导致所有该对象的引用都发生变化。

静态方法与非静态方法,构造方法,数组拷贝相关推荐

  1. java静态方法 问题_Java中堆、栈,静态方法和非静态方法的速度问题

    一.堆和栈的速度性能分析 堆和栈是JVM内存模型中的2个重要组成部分,自己很早以前也总结过堆和栈的区别,基本都是从存储内容,存储空间大小,存储速度这几个方面来理解的,但是关于堆和栈的存储速度,只知道堆 ...

  2. java堆和客栈_JAVA中堆、栈,静态方法和非静态方法的速度问题

    一.堆和栈的速度性能分析 堆和栈是JVM内存模型中的2个重要组成部分,自己很早以前也总结过堆和栈的区别,基本都是从存储内容,存储空间大小,存储速度这几个方面来理解的,但是关于堆和栈的存储速度,只知道堆 ...

  3. java静态方法和非静态方法的区别_史上最全阿里 Java 面试题总结

    关注[ToBeTopJavaer],回复[答案],获取全套面试题答案,为明年的金三银四,做好充分的准备. JAVA基础 JAVA中的几种基本数据类型是什么,各自占用多少字节. String类能被继承吗 ...

  4. 静态方法vs非静态方法

    静态方法vs非静态方法 我的理解:静态方法和非静态方法设计之初的目的就是前者是针对类,也就是某一种 对象集体所拥有的,而非静态方法是针对某一个对象的.在引用静态方法时,可以使用 对象名加前缀,也可以使 ...

  5. 静态方法和非静态方法区别?

    静态方法static(类方法)和 非静态方法(实例方法)的区别: 方法我们主要分为三种: 1.构造方法 2.静态方法(类方法) 3.非静态方法(普通方法/实例方法/成员方法) 对于1(补充一下):构造 ...

  6. C#静态类 静态方法与非静态方法比较

    静态类 在类(class)上加入static修饰,表示该类无法被实例化,并将该类中,无法实例化变量或函数 静态类的主要特性 仅包含静态成员 无法实例化 静态类的本质,时一个抽象的密封类,所以不能被继承 ...

  7. java中synchronized修饰静态方法和非静态方法有什么区别?

    Synchronized修饰非静态方法 Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称"对象锁". Java中每个对象都有一个锁,并且是唯一的.假设分 ...

  8. 使用synchronized修饰静态方法和非静态方法有什么区别

    前言 最近被问到了这个问题,第一次回答的也是很不好,在此参考网上答案进行整理记录.供大家学习参考. Synchronized修饰非静态方法 Synchronized修饰非静态方法,实际上是对调用该方法 ...

  9. php中静态方法有什么作用,PHP中的静态方法与非静态方法有什么不同吗?

    除此之外,如果您尝试在您的方法中使用$this,如下所示: class t { protected $a = 10; public function tt() { echo $this->a; ...

最新文章

  1. ubuntu clion 创建桌面快捷方式
  2. yy自动语音接待机器人_人脸签到、发言记录,会议机器人来啦
  3. LoRaWAN 巩固了其作为低功耗广域网主导技术的地位
  4. mybatis学习(45):开启二级缓存
  5. IIS网站或系统验证码不显示问题——使用了托管的处理程序,但是未安装或未完整安装 ASP.NET...
  6. 基于JAVA+SpringBoot+Mybatis+MYSQL的记账本管理系统
  7. Multiload-ng
  8. Android 动态移动控件实现
  9. 中国团队首次夺冠FPS游戏AI竞赛VizDoom,清华腾讯AI联手
  10. Eclipse开发工具组合键介绍
  11. scp 跨机远程拷贝
  12. 返回0-9直接的随机数
  13. JavaWeb学习笔记7--JSP脚本元素、指令元素、动作元素
  14. java jtable 自动高度,自动调整JTable中行的高度
  15. 暴风影音CTO:暴风门事件给研发团队带来的启示
  16. 2020 APP批量头像,高质量严选真实用户头像
  17. esxi6.7.0最新版本下载
  18. ACCV 2020国际细粒度网络图像识别竞赛——正式开赛!
  19. uniapp技术应用,以及案列讲解
  20. One-Stage Visual Grounding via Semantic-Aware Feature Filter

热门文章

  1. 浏览器无法上网-微信等正常-解决方案
  2. JavaWeb CSS样式
  3. python环境安装
  4. 全球各大邮件SMTP服务限制
  5. 学习【全栈之巅】Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台笔记(1.1-2.5)
  6. xlwings删除数据_python 之xlwings的常用操作
  7. 学生党 白嫖之GPU Google colab 训练深度学习模型
  8. 快速安装Docker详细图文步骤教程
  9. 用 Python 写一副春联福字,把最好的祝福,送给重要的人
  10. cmd进入指定目录和退出当前文件夹