关键字static

在java语言中,static用来修饰成员变量和成员方法,也可形成静态代码块来优化程序性能(特性:只会在类加载的时候执行一次)。

static变量也称作静态变量,静态变量和非静态变量的区别是:

静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。

而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。

(1)静态变量/方法调用

public class A {static int x = 1;void  a() {{System.out.println("调用非静态方法");                  b();///非静态方法中调用静态方法}}static void b() {{System.out.println("调用静态方法!");}}public static void main(String[] args) {System.out.println(A.x);/// static int b = 2;不允许在修饰局部变量,这样会报错的A.b();///静态方法直接用类名调用A st = new A();st.a();}
}

(2)静态代码块

注意:1、java语法规定,static是不允许用来修饰局部变量的,也可以说static块可以出现类中的任何地方(只要不是方法内部)。

2、static方法就是没有this的方法。在static方法内部是不能调用非静态方法的,当是反过来就可以了。

3、static可以在没有创建对象的情况下,仅仅通过类本身来调用static方法,也就是说方便没有创建对象的情况下进行调用(变量/方法)

不可以使用protected来修饰class

关键字(public、private、protected)

     默认方法,public、private、protected方法都可以在同一个类(本类)下调用。

package Training;public class Father {void show() {System.out.println("默认show!");}public void show1() {System.out.println("public show1!");}private void show2() {System.out.println("private show2!");}protected void show3() {System.out.println("protected show3!");}public static void main (String[] args) {Father f = new Father();f.show();f.show1();f.show2();f.show3();}
}

 private属于私有的,只能为本类(子类、无关类)所用。其他可以在同一个包调用。

package Training;public class son extends Father{public static void main(String [] args) {Father f = new Father();f.show();f.show1();// s.show2();f.show3();System.out.println("**************");son s= new son();s.show();s.show1();// s.show2();s.show3();}
}

  

package Training;public class tect {public static void main(String  []args) {Father f = new Father();f.show();f.show1();//f.show2();f.show3();}
}

  

只有protected、public能在不同包下的(子类、无关类)调用。

package Training1;import Training.Father;public class son2 extends Father{public static void main(String [] args) {Father f = new Father();//f.show();f.show1();//s.show2();// f.show3();System.out.println("**************");son2 s= new son2();//s.show();s.show1();//s.show2();s.show3();}
}

  

package Training1;import Training.Father;
class tect2 {public static void main(String[] args) {Father f = new Father();//f.show();f.show1();//f.show2();//f.show3();}
}

  

以上权限修饰符的可见范围:

本类         同一个包下      不同包下的子类     不同包下的无关类
private         可以
默认             可以               可以
protected     可以               可以               可以 
public           可以               可以               可以                     可以

参考资料:

http://www.cnblogs.com/dolphin0520/p/3799052.html

https://zhidao.baidu.com/question/294516388.html

转载于:https://www.cnblogs.com/zws-bugging/p/10634363.html

java语言基础之关键字1(public、protested、private、static)相关推荐

  1. Java语言基础(一)

    Java语言基础组成 关键字 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有字母都为小写. 用于定义数据类型的关键字 class interface byte short int lo ...

  2. java入门学习笔记(二)—— Eclipse入门学习之快捷键、java语言基础知识之各类关键字及其用法简析

    一.Eclipse入门学习 1. 快捷键 对于一个编辑器,快捷键必不可少,是十分好用且有效的工具. 对于一个初学者,首先掌握了如下快捷键. (很多通用的快捷键不多说) Ctrl + / -- 注释当前 ...

  3. java语言中声明布尔型_【Java初探02】——Java语言基础

    本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...

  4. “面试不败计划”: java语言基础面试题(三)

    点击上方"好好学java",选择"置顶公众号" 优秀学习资源.干货第一时间送达! 好好学java java知识分享/学习资源免费分享 关注 精彩内容 java实 ...

  5. 计算机java语言教程,计算机JAVA教程二讲Java语言基础知识.doc

    计算机JAVA教程二讲Java语言基础知识 2.1简单数据类型 2.1.1 标识符和保留字 1.标识符 程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier).Java语言 ...

  6. java单引号转义_Java基础入门——Java语言基础(上)

    本篇我们开始进入Java的学习,首先在学习如何编写Java语言前要先了解Java程序的基本结构. 一.Java程序的基本结构 一个Java程序的基本结构大体可以分为包.类.main()主方法.标识符. ...

  7. java语言定义一个具备栈功能的类_Java学习笔记 第二章 Java语言基础

    第二章 JAVA语言基础 一.关键字 1.关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有的字母都为小写 2.用于定义数据类型的关键字 c;ass  interface ...

  8. 【JAVA语言基础】

    JAVA语言基础 一.JAVA主类结构 1.包声明 2.声明成员变量和局部变量 3.编写主方法 4.导入API类库 二.基本数据类型 1.整数类型 2.浮点类型 3.字符类型 4.布尔类型 三.变量与 ...

  9. JAVA——从基础学起(一)Java语言基础

    一 Java语言基础 1.1Java主类结构 (1)Java是面向对象的编程语言,基本组成单元是类,类体中包括属性和方法两部分.每个应用程序都需要含有一个main方法,含有main方法的类叫做主类. ...

  10. 2、java语言基础

    java语言基础 1.关键字关键字都是小写 public类名首字母大写 Demo12.标识符在程序中自定义的一些名称.由26个英文字母大小写,数字:0-9,符号:_$数字不可以开头不可以使用关键字3. ...

最新文章

  1. 走过19年,每年千万下载量,科学计算开源库SciPy的前世今生
  2. golang 小知识-持续更新中
  3. JZOJ 3819. 【NOI2015模拟9.9】取石子
  4. 推翻Hinton NeurIPS论文结论!审稿人评价:该文章在标签平滑和知识蒸馏的关系上取得了重大突破!...
  5. AD:使用C#批量创建帐号
  6. Spring.NET学习笔记——目录(原)
  7. Python爬虫反反爬:CSS反爬加密彻底破解!
  8. 人民网:《百度公布博客服务商前十强 MSN博客超过本土博客》
  9. 怎么追学计算机的女生,怎样去追比较文静,不爱说话的女生!!!!!
  10. 年末高压叠加“阳”后虚弱,双重压力下的测试者们该何去何从
  11. 《大数据时代》读书总结
  12. js下载Word文档
  13. Python 中类的继承
  14. 百度关键词模拟发包php程序,百度关键词快排_什么是seo快排发包技术? - 「黑酷SEO」...
  15. laravel 基础使用
  16. 使用SOAP网关实现OpenMeetings 与其它系统的整合
  17. excel数据表单_Excel中的工作表数据输入表单
  18. 绝地求生等游戏是怎样做出来的?带你们去看看游戏模型的制作流程
  19. 机器人界面调试问题记录
  20. 解决Could not initialize class cn.itcast.util.JDBCUtils 数据库加载问题

热门文章

  1. 深度操作系统20.6发布!
  2. 一文弄懂调节器的PID自整定原理和方法
  3. 苦难是屈辱,还是财富?
  4. 重标极差(R/S)分析法计算Hurst指数(Python)
  5. opencv学习(十四)之图像颜色通道分离和融合
  6. aspose.total for C++ Crack
  7. f(x)和g(x)分别是概率密度函数,h(x)=f(x)g(x)还会是概率密度函数么?
  8. SmartToast
  9. 思科cisco策略路由基本概念
  10. matlab相反数计数,怎么把origin表格中的数改成相反数