Java 中的 static 使用之静态方法

上传人:ji****72 文档编号:37518264 上传时间:2018-04-17 格式:DOC 页数:21 大小:4MB
返回 下载 相关 举报
Java 中的 static 使用之静态方法_第1页
第1页 / 共21页
Java 中的 static 使用之静态方法_第2页
第2页 / 共21页
Java 中的 static 使用之静态方法_第3页
第3页 / 共21页
Java 中的 static 使用之静态方法_第4页
第4页 / 共21页
Java 中的 static 使用之静态方法_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《Java 中的 static 使用之静态方法》由会员分享,可在线阅读,更多相关《Java 中的 static 使用之静态方法(21页珍藏版)》请在金锄头文库上搜索。

1、Java 中的 static 使用之静态方法与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法。其实之前 我们一直写的 main 方法就是静态方法。静态方法的使用如:需要注意: 1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。如:如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非 静态变量静态变量。如:、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量在普通成员方

2、法中,则可以直接访问同类的非静态变量和静态变量,如下所示:3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。如:ava 中的 static 使用之静态初始化块Java 中可以通过初始化块进行数据赋值。如:在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。 如果使用 static 修饰初始化块,就称为静态初始化块。 需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只 能给静态变量赋值,不能初始化

3、普通的成员变量能给静态变量赋值,不能初始化普通的成员变量。 我们来看一段代码:运行结果:通过输出结果,我们可以看到,程序运行时静态初始化块最先被执行,然后执行普通初始 化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建 对象 hello2 时并未执行静态初始化块。封装 1、概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实 现对隐藏信息的操作和访问 2、好处 a:只能通过规定的方法访问数据 b:隐藏类的实例细节,方便修改和实现。什么是 Java 中的内部类问:什么是内部类呢? 答:内部类( Inner Class )就是定义在另外一

4、个类里面的类。与之对应,包含内部类的 类被称为外部类。 问:那为什么要将一个类定义在另一个类里面呢?清清爽爽的独立的一个类多好啊! 答:内部类的主要作用如下:1. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他 类访问该类 2. 内部类的方法可以直接访问外部类的所有数据,包括私有的数据 3. 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便 问:内部类有几种呢? 答:内部类可分为以下几种:o成员内部类o静态内部类o方法内部类o匿名内部类Java 中的成员内部类内部类中最常见的就是成员内部类,也称为普通内部类。我们来看如下代码:运行结果为:从上面的

5、代码中我们可以看到,成员内部类的使用方法成员内部类的使用方法: 1、 Inner 类定义在 Outer 类的内部,相当于 Outer 类的一个成员变量的位置,Inner 类可以使用任意访问控制符,如 public 、 protected 、 private 等 2、 Inner 类中定义的 test() 方法可以直接访问 Outer 类中的数据,而不受访问控制符 的影响,如直接访问 Outer 类中的私有属性 a 3、 定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一 个内部类对象,即:内部类 对象名 = 外部类对象.new 内部类( ); 4、 编译上面的程序

6、后,会发现产生了两个 .class 文件其中,第二个是外部类的 .class 文件,第一个是内部类的 .class 文件,即成员内部类 的 .class 文件总是这样:外部类名$内部类名.class1、 外部类是不能直接使用内部类的成员和方法滴可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。、 如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方 法,如果要访问外部类的成员变量,可以使用 this 关键字。如:运行结果:Java 中的静态内部类静态内部类是 static 修饰的内部类,这种内部类的特点是: 1、 静态内部类不能直接访问外部类的非静态成员

7、,但可以通过 newnew 外部类外部类().().成员成员 的方 式访问 2、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部 类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名” 直接调用外部类的静态成员 3、 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类内部类 对象名对象名= = newnew 内部类内部类();();运行结果 : public static class SInner / 内部类中的变量 scoreint score = 91;public void show() System.out.print

8、ln(“访问外部类中的 score:“ + HelloWorld.score );System.out.println(“访问内部类中的 score:“ + score);/ 测试静态内部类public static void main(String args) / 直接创建内部类的SInner si=new SInner();/ 调用 show 方法si.show();e.printStackTrace();打印异常:Scanner 是 SDK1.5 新增的一个类,可是使用该类创建一个对象. Scanner reader=new Scanner(System.in); 然后 reader 对

9、象调用下列方法(函数),读取用户在命令行输入的各种数据类型: next.Byte(), nextDouble(),nextFloat,nextInt(),nextLin(),nextLong(),nextShot() 上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.例如,拥护在键盘输入 12.34,hasNextFloat()的值是 true,而 hasNextInt()的值是 false. NextLine()等待用户输入一 个文本行并且回车,该方法得到一个 String 类型的数据。 下面是一个实例:import java.util.*; public class Examp

10、le public static void main(String args) System.out.println(“请输入若干个数,每输入一个数用回车确认“); System.out.println(“最后输入一个非数字结束输入操作“); Scanner reader=new Scanner(System.in); double sum=0; int m=0; while(reader.hasNextDouble()double x=reader.nextDouble();m=m+1;sum=sum+x; System.out.printf(“%d 个数的和为%f/n“,m,sum); S

11、ystem.out.printf(“%d 个数的平均值是%f/n“,m,sum/m); Java 中 String 类的常用方法 String 类提供了许多用来处理字符串的方法,例如,获取字符串长度、对字符串进行截取 、将字符串转换为大写或小写、字符串分割等,下面我们就来领略它的强大之处吧。 String 类的常用方法:结合代码来熟悉一下方法的使用:运行结果:友情提示:友情提示: 1. 字符串 str 中字符的索引从 0 开始,范围为 0 到 str.length()-12. 使用 indexOf 进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果, 返回 -1 3. 使用 sub

12、string(beginIndex , endIndex) 进行字符串截取时,包括 beginIndex 位置 的字符,不包括 endIndex 位置的字符Java 当中的线程方法一、使用 extends 继承来实现;方法二、使用接口实现接口来完成:三和上面对比 加入 synchronizes(this)(一)、一、 抽象类生来就是当爹的:二、抽象函数可以被继承但是子类必须复写父类的抽象函数;】三、抽象类可以有构造函数,构造函数可以再子类的构造函数中用super()方法调用。This 的用法;String name;Int age;String address;/this.name 的 nam

13、e 代表成员变量,=后面的参数代表的是参数 name ;This 的用法二、调用本类中的构造函数 或函数包一:如果一个类不是 public 则无法再外部包中使用它 ,如果他是 public 则可以用(包名) (.) (类名)调用它 如果一个类是 public 如果想在别的包中调用这个类的变量和函数,则需要把函数和变量声明为 public Private 只能在当前这个类中使用;Default 什么都不写就是 defaultProtected 权限首先拥有和 default 一样的功能,但是该权限 只能修饰成员变量和成员函数,如果其他包中的类继承另一个包中的类如果成员变量和成员函数式 prote

14、cted ,则可以访问;IO 接口字节流import java.io.*; class Test1 public static void main(String args) FileInputStream fil=null; FileOutputStream fos=null; try fil=new FileInputStream(“D:/work/src/from.txt“); fos=new FileOutputStream(“D:/work/src/gg.txt“); bytebuffer=new byte1024; while(true) int hh=fil.read(buffer

15、,0,buffer.length); if(hh=-1) break; fos.write(buffer,0,hh); catch(Exception e) System.out.println(e); finally try catch(Exception e) System.out.println(e); 字符流 import java.io.*; class Test2 public static void main (String args) FileReader p=null; BufferedReader a=null; try p=new FileReader(“D:/work/src/hh.txt“); a=new BufferedReader(p); String line=null; while(true) line=a.readLine(); if(line=null) break; System.out.println(line); catch(Exception e) System.out.println(e); finally try p.close(); a.close(); catch(Exception e) System.out.println(e);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号