Java里面static, final, this, super, 代码块, 单例模式

static关键字

package csdn;public class staticWord {public static void main(String[] args) {funStatic fs1 = new funStatic();funStatic.showA();fs1.b = 2;fs1.showB(); // 2System.out.println("----------");funStatic fs2 = new funStatic();funStatic.a  = 3;funStatic.showA();fs2.showB(); // 1}
}class funStatic {public static int a = 1; //静态的公共的。int b = 1;static void showA() {System.out.println("a = " + a);}void showB() {System.out.println("b =" + b);}
}/** 结果* *  a = 1b =2----------a = 3b =1* * static 关键字:* 从上面的分析, * 1, 静态里面不能有普通属性, 普通方法, 因为静态属于类, 跟随类先加载出来在方法区。* 2, 静态在方法区的静态区域, 还是那句话, 属于类, 它被修改, 值也发生变化。* 3, 变量却不同, 它跟随对象而变。* conclusion : * 普通方法, 字段属于对象, 对象变, 小心对应的值。* 静态属于类, 一变, 则对应的值也变, 它一直在, 像无脸男一样。* 优先对象加载。* 静态里面只能调用静态。* */

final 关键字

class A {public final void show() {System.out.println("say hello to goodbye!");}public final int a = 0;//a = 0; 错误
}class B extends A {/*public void show() {}  错误*/}/*final conclusion:** 被final修饰的类不可被继承。** 被final 修饰的方法不可以被重写。* * final 修饰的变量不可被改变, 被当作常量。* */

this关键字

class word {String hello;String rye;int index;public word() {}public word(int index, String rye, String hello) {//this();this("hello");//this 调用构造函数。 但是构造函数 只能出现在构造方法里面的第一行,有且只有一个。this.rye = rye;this.index = index;//this 区分全局与局部变量。}/*类比.net里面的this关键字,它只能指代这个类,this.类里面的属性和方法。* 却不能像Java一样 用this调用自身的构造函数。* */public word(String hello) {		this.hello = "hello";		}//word有三个方法的重载,且在同一个类中,参数个数不同,或者参数的类型不同。与返回值无关,与参数列表有关。
}

继承里面的关键字 super

package csdn;public class C12_6 {public static void main(String[] args) {son s = new son();s.show();System.out.println("---------");son ss = new son("rye girl");ss.show();}
}class father {	String name; String sex;double money;private String wife;public father() {System.out.println("父类无参构造。");}public father(String name, String sex) {super(); //object(父类) 的构造函数this.name = name;this.sex = sex;System.out.println("父类两个带参数的有参构造。");}public String getWife() {return wife;}public void setWife(String wife) {this.wife = wife;}public void show() {System.out.println("i am a father!");}}class son extends father{private String wife;double money;public son() {super();System.out.println("子类的无参构造。");}public son(String wife) {super("les", "male");this.wife = wife;System.out.println("子类的有参构造。");}public void show() {System.out.println("i am your son!");}public void setWife(String wife) {this.wife = wife;}public String getWife() {return wife;}
}/*
结果:父类无参构造。子类的无参构造。i am your son!---------父类两个带参数的有参构造。子类的有参构造。i am your son!super 作用:* 1, 区分父子类; * 2,调用父类构造函数, 也要把super放在构造第一行。与this 有异曲同工之妙, 只是关键字不同。* super("","","" ...);* 3, 可以理解为父类的地址。* * 注意在调用构造函数时, jvm 先加载父类的构造。但是在使用对象的方法, 或者对象的属性时, 子类* 里面有就用自己的, 没有就拿爸爸的。* * 与.net base 区分。* 语法不同而已, 也是指代父类。* *  public student() : base (3,"","",""){Console.WriteLine("学生构造。");}* */

代码块 (三个)

package csdn;public class codePiece {public static void main(String[] args) {//代码块: 规定代码的生命周期的范围, 出现在方法里面, 或者类中方法外{//普通代码块:运行完便消失, 节约资源的一种方式。 int a = 1;System.out.println(a);}System.out.println("-------------");code c = new code();c.show();}
}class code {String java;String C;String OC;public code() {System.out.println("code无参构造。");}{//构造代码块 在构造函数初始化时 便调用System.out.println("非类方法外, 构造代码块。");}static {//静态代码块System.out.println("非类方法外, 静态代码块。");}void show() {{int a = 0;System.out.println(a);}{int a = 0;System.out.println(a);}}
}/*结果:* 
1
-------------
非类方法外, 静态代码块。
非类方法外, 构造代码块。
code无参构造。
0
0* * * conclusion:* 方法里面的代码块, 和非方法类里面的代码块。* * 非方法里的代码块分为 静态代码块和构造代码块。* * 静态代码块优先构造代码块, 构造代码块优先构造函数出现。* */

单例模式

package csdn;public class single {String name;static single s = new single();//单例设计模式 : 让一个类只能生成一个对象//先将构造方法私有化, 让外部不能创建 对象, 而通过一个方法来访问这个对象一次。//既然不能new 对象, 那么怎么访问这个方法? 所以静态就来了private single() {}		public static single show() {return s;}		
}class testSingle {public static void main(String[] args) {single s1 = single.show();single s2 = single.show();System.out.println(s1 == s2);//true//说明是同一个对象。 私有化构造, 利用静态实现单例, 让这个对象只出现一次。}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421148.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1063. 计算谱半径(20)

1063. 计算谱半径(20) 时间限制200 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界。换言之,对于给定的n个复数空间的特征值{a1b1i, ..., anbni},它们的模为实部…

用了vscode和clion我都裂开了

vscode看着挺牛逼,经常遇到问题,每次运行还得f5调试,你如果想便捷一点,你可以去下插件,比如ccmopiler,code runner啥的。我自己用c但是这两个玩意都不支持c11想要支持还得自己配你看4S店上很多文章&#xf…

windows phone (12) 小试自定义样式

windows phone (12) 小试自定义样式 原文:windows phone (12) 小试自定义样式样式在BS开发中经常用到,在wp中系统也提供了解决办法,就是对设置的样式的一种资源共享,首先是共享资源的位置,它是在App类中,之前我们已经有…

xdoj判断堆栈出栈序列是否有效c++

我在leetcode上写过类似的题&#xff0c;这个代码在xdoj上只能得***50***分&#xff0c;跪求各位大佬挑挑毛病。 #include<stack> #include<iostream> #include<vector> using namespace std; int main(){vector<int>poped;stack<int>s;int n,t;…

1064. 朋友数(20)

1064. 朋友数(20) 时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue如果两个整数各位数字的和是一样的&#xff0c;则被称为是“朋友数”&#xff0c;而那个公共的和就是它们的“朋友证号”。例如123和51就是朋友数&#xff0c;因为123 51 6&…

Java StringBuffer

最近在学Java API 做的简单笔记 package C12_17;public class testBuffer {public static void main(String[] args) {//StringBuffer 属于java.lang包&#xff0c;属于基础包&#xff0c;jdk api 里面有其运用方式。StringBuffer sb new StringBuffer("Hello");//…

XDOJ 363 输出快速排序递归算法隐含递归树的后序遍历序列 AC

像我这样的菜鸡也没有什么能输出的&#xff0c;好像我写题解也不算输出。 最近期末了&#xff0c;写数据结构实验的时候&#xff0c;这个题写了挺久的&#xff0c;搞出来记录一下。 输出快速排序递归算法隐含递归树的后序遍历序列 描述&#xff1a; 快速排序递归算法隐含一棵由…

uilabel 自适应

有时一个UILable的text内容是变化的&#xff0c;而且差异有很大&#xff0c; 需求上要求UILabel的大小高宽能够自适应text的内容。代码例子&#xff1a; myLable[[UILabel alloc] initWithFrame:CGRectMake(0, 23, 175, 33)]; [myLable setFont:[UIFont fontWithName:&qu…

1065. 单身狗(25)

1065. 单身狗(25) 时间限制300 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue“单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人&#xff0c;以便给予特殊关爱。 输入格式&#xff1a; 输入第一行给出一个正整数N&am…

ArrayList的remove方法(重写equals方法) 与LinkedList的常用操作

package C12_18;import java.util.ArrayList;public class joy {public static void main(String[] args) {show();//重写equals方法&#xff0c;移除集合里面的元素。public static void show() {ArrayList<dog> al new ArrayList<dog>();al.add(new dog("j…

期末寒假绝对好好学

期末考试考7门&#xff0c;距离最近的一门还有7天&#xff0c;我保证我这几天绝对好好复习&#xff0c;好好过一个寒假。我的寒假从来都是浪完的&#xff0c;我发誓我这一次绝对好好学习٩( •̀㉨•́ )و &#xff0c;我不好好学&#xff0c;我这辈子都单身

android学习日记13--数据存储之ContentProvide

3、ContentProvider  数据在Android当中是私有的&#xff0c;当然这些数据包括文件数据和数据库数据以及一些其他类型的数据。ContentProvider实现多应用程序间的数据共享类一般利用ContentProvider为需要共享的数据定义一个URI(统一资源定位符)然后其他程序通过Context获得C…

cin,cin.get(),getline()

我势必扫清我对c的各种疑惑&#xff0c;重拾csdn水文之任 结论&#xff1a;cin在获得需要接受的东西之前&#xff0c;对缓冲区里的空格和换行符不会理睬(但是会把它们从缓冲区删去)&#xff0c;但如果达到了可以结束接受的时候&#xff0c;空格和换行符都会让cin不再接 收,并且…

1067. 试密码(20)

1067. 试密码(20) 时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue当你试图登录某个系统却忘了密码时&#xff0c;系统一般只会允许你尝试有限多次&#xff0c;当超出允许次数时&#xff0c;账号就会被锁死。本题就请你实现这个小功能。 输入格…

Map接口的实现类HashMap的操作

3中遍历HashMap方式 package C12_21;import java.util.Collection; import java.util.HashMap; import java.util.Set; import java.util.Map.Entry;public class testHashMap {public static void main(String[] args) {//定义两个HashMap 集合HashMap<Integer, Integer&g…

1068. 万绿丛中一点红(20)

1068. 万绿丛中一点红(20) 时间限制500 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue对于计算机而言&#xff0c;颜色不过是像素点对应的一个24位的数值。现给定一幅分辨率为MxN的画&#xff0c;要求你找出万绿丛中的一点红&#xff0c;即有独一无二颜色…

MapReduce 作业调试

1. 最经典的方法通过打印语句来调试程序 System.err.println("Bad Data"value.toString()); 这些输出错误都会记录到一个标准错误中&#xff0c;可以通过WebUI进行查看 2.可以创建一个自定义计数器来统计整个数据集中不合理的数据的数量。 首先创建一个enum enum BA…

寻找边界值,二分模板,简洁凝练

二分模板 class Solution {public static void main(String[] args) {int[] arr{1,2,2,2,2,4,5,6};int l0,rarr.length-1;while(l<r){int midl(r-l)/2;if(arr[mid]>2) rmid;else lmid1;}System.out.println("l:"l"r:"r);System.out.println("le…

Java 字节和字符流的读写+Buffered

一个关于IO流的导图 IO流字节的读写&#xff0c;实现复制 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;public class TestCopy {public static void main(String[] args) throws IOException {copyT…

1069. 微博转发抽奖(20)

1069. 微博转发抽奖(20) 时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue小明PAT考了满分&#xff0c;高兴之余决定发起微博转发抽奖活动&#xff0c;从转发的网友中按顺序每隔N个人就发出一个红包。请你编写程序帮助他确定中奖名单。 输入格式…