static关键字设计原理
语法只是表象,原理才是关键!!!
灵魂static关键字
Java规定:方法只能由对象来调用。
换句话来说,在面向对象的思维下,方法与对象存在一种强耦合。
方法在没有对象的情况下无法调用,于是上帝派来了static
static作用:即使没有初始化对象,也可以调用方法。(类比到属性上同样如此)
被static修饰的数据称为类数据,修饰的方法称为类方法。并且Java推荐使用类名.方法名(或属性名)的方式调用。
为什么static的权限低?
非static方法可以调用static方法,但static方法不能调用非static方法。
这个规则背了好久都没背住,原因其实很简单,正常的方法只能用对象来调用,所以static不能调用非static方法。
而非static可以调用static方法是因为,static关键字的设计就是为了解决方法只能由对象来调用这一问题的,所以,没有非static方法也可以在
没有实例化对象的情况下调用static方法或关键字。
static关键字设计原理的更多相关文章
- Java 静态static关键字,main函数,对象的初始化过程,对象调用成员,单例模式的设计,静态代码块(6)
		Java 静态static关键字,静态代码块详情参考:static的使用原理讲解http://www.cnblogs.com/itcqx/p/5519464.html main函数: java Mai ... 
- static关键字有何魔法?竟让Spring Boot搞出那么多静态内部类
		生命太短暂,不要去做一些根本没有人想要的东西.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习 ... 
- 你真的了解JAVA中对象和类、this、super和static关键字吗
		作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.JAVA底层.面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 目录 Java对象究竟是什么? 创建对象的过程 ... 
- 【C++】从设计原理来看string类
		1.一些C++基础知识 模板类string的设计属于底层,其中运用到了很多C++的编程技巧,比如模板.迭代器.友元.函数和运算符重载.内联等等,为了便于后续理解string类,这里先对涉及到的概念做个 ... 
- Java Static关键字详解
		提起static关键字,相信大家绝对不会陌生,但是,想要完全说明白,猛的一想,发现自己好像又说不太明白... ...比方说,昨天被一个同学问起的时候... ... 当然,不是所有人都像我一样学艺不精的 ... 
- C++中的static关键字的总结
		C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用. 1.面向过程设计中的st ... 
- 理解Java中的final和static关键字
		回顾这两个关键字前,先考虑一个问题: Static变量存储在JVM中的位置,或者说static变量是如何被加载的? JVM会把类的静态方法和静态变量在类加载的过程中读入方法区(Method Area) ... 
- (转)C++中的static关键字的总结
		文章转自 http://www.cnblogs.com/BeyondAnyTime/archive/2012/06/08/2542315.html C++的static有两种用法:面向过程程序设计中的 ... 
- c++中关于static关键字的问题
		C++的static关键字C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用. ... 
随机推荐
- C++输出三角图形
			输出像这样的三角图形 3 1 1 1 1 1 1 1 1 1 1 1 1 ... 
- 2018年BRATS 肿瘤分割挑战赛第三名分割方案One-pass Multi-task Networks with Cross-task Guided Attention for Brain Tumor Segmentation
			首先说一下我对这个方案的看法,相比第一名与第二名的方案,这个方案的分割方法确实复杂的多,原论文是发表在MICCAI,后来砖投到IEEE image processing(SCI 1区),总体感觉给人一 ... 
- day10 基本数据类型(下)
			目录 一.集合 1.作用 2.定义 3.类型转换 4.内置方法 4.1交集:两者共有的 4.2合集:两者融合去重 4.3差集:某个集合单独有的 4.4对称差集:两个集合各自单独有的组成的集合 4.5父 ... 
- VirtualBox安装centos8
			原文链接:https://www.wjcms.net/archives/vagrantbox安装centos8 VirtualBox安装centos8 在线安装(不推荐) 打开git软件,直接运行命令 ... 
- MYSQL 之 JDBC(四): 增删改查(二)通过ResultSet执行查询操作
			/** * ResultSet:结果集.封装了使用JDBC进行查询的结果. * 1. 调用Statement对象的executeQuery(sql)方法 * 2. ResultSet返回的实际上就是一 ... 
- 数据可视化之DAX篇(二十七)半累加度量,在Power BI 中轻松处理
			https://zhuanlan.zhihu.com/p/96823622 开始半累加的计算之前,我们先看看什么是累加.半累加以及不可累加数据. 在含有大量行的数据表中,各种数据处理语言,包括DAX ... 
- bzoj3367[Usaco2004 Feb]The Big Game 球赛*
			bzoj3367[Usaco2004 Feb]The Big Game 球赛 题意: n只奶牛,每只支持两个球队中的一个,它们依次上车,上到一定程度可以开走这辆车并换下一辆继续上.要求一辆车上支持不同 ... 
- iis 0x80070032 Cannot read configuration file because it exceeds the maximum file size
			问题:iis部署了网站,由于webconfig文件过大(251kb,默认250kb)导致网站报错 0x80070032 Cannot read configuration file because i ... 
- linux  $* 和$@例子
			参见ibm网站示例: https://www.ibm.com/developerworks/cn/linux/l-bash-parameters.html 示例: [ian@pinguino ~]$ ... 
- Database Identifiers  - SID
			These options include your global database name and system identifier (SID). The SID is a unique ide ... 
