首页 > 精品范文库 > 2号文库
java个人小结——修饰符
编辑:心如止水 识别码:11-1081543 2号文库 发布时间: 2024-07-27 22:35:08 来源:网络

第一篇:java个人小结——修饰符

Java中public、protected、private、abstract、static和final 1.public 使用对象:类、接口、成员

介绍:无论它所处在的包定义在哪,该类(接口、成员)都是可访问的2.private 使用对象:成员

介绍:成员只可以在定义它的类中被访问

3.static 使用对象:类、方法、字段、初始化函数

介绍:成名为static的内部类是一个顶级类,它和包含类的成员是不相关的。静态方法是类方法,是被指向到所属的类而不是类的实例。静态字段是类字段,无论该字段所在的类创建了多少实例,该字段只存在一个实例被指向到所属的类而不是类的实例。初始化函数是在装载类时执行的,而不是在创建实例时执行的。

4.final 使用对象:类、方法、字段、变量

介绍:被定义成final的类不允许出现子类,不能被覆盖(不应用于动态查询),字段值不允许被修改。

5.abstract 使用对象:类、接口、方法

介绍:类中包括没有实现的方法,不能被实例化。如果是一个abstract方法,则方法体为空,该方法的实现在子类中被定义,并且包含一个abstract方法的类必须是一个abstract类 6.protected 使用对象:成员

介绍:成员只能在定义它的包中被访问,如果在其他包中被访问,则实现这个方法的类必须是该成员所属类的子类。

7.native 使用对象:成员

介绍:与操作平台相关,定义时并不定义其方法,方法的实现被一个外部的库实现。Object里面的hashCode方法是采用native的,String int这些类是重写了的

8.strictfp 使用对象:类、方法

介绍:strictfp修饰的类中所有的方法都隐藏了strictfp修饰词,方法执行的所有浮点计算遵守IEEE 754标准,所有取值包括中间的结果都必须表示为float或double类型,而不能利用由本地平台浮点格式或硬件提供的额外精度或表示范围。

9.synchronized 使用对象:方法

介绍:对于一个静态的方法,在执行之前jvm把它所在的类锁定;对于一个非静态类的方法,执行前把某个特定对象实例锁定。

10.volatile 使用对象:字段

介绍:因为异步线程可以访问字段,所以有些优化操作是一定不能作用在字段上的。

volatile有时可以代替synchronized。

11.transient 使用对象:字段

介绍:字段不是对象持久状态的一部分,不应该把字段和对象一起串起.

第二篇:Java 默认修饰符 总结

Java 默认修饰符 总结

1.类(class)

可见性修饰符: public—在所有类中可见,在其他包中可以用import导

入。

缺省—就是没有修饰符,在同一个包中的类中可见,在其他包中不能用

import导入。

修饰符:final—终态类,表示该类不能被继承

abstract—抽象类,不能新建对象

2.变量(variable)

Java中变量有两种,方法变量和字段变量

方法变量只能用一个修饰符:final—表示常量,不能修改 下面是字段变量的修饰符

可见性修饰符:public—在任何类中可见 protected— 在子类中或同一个包中可见 private—只在本类中可见,子类中也不可见

缺省—在同一个包中可见,子类不在一个包中,子类中也不可见

修饰符:static—静态变量,被类的所有实例共享 final—常量,定义后不能修改

*transient—告诉编译器,在类对象序列化的时候,此变量不需

要持久保存

*volatile—指出可能有多个线程修改此变量,要求编译器优化以

保证对此变量的修改能够被正确的处理

这两带*的不是很常用,但也是Java的修饰符,我也不是很清楚

3.方法(method)

可见性修饰符:public—在任何类中可见 protected—在子类中或同一个包中可见 private—只在本类中可见,子类中也不可见

缺省—在同一个包中可见,子类不在一个包中,子类中也不可见

修饰符: static—静态方法,并不需要创建类的实例就可以访问静态方法 final—常方法,所有子类不能覆盖该方法,但可以重载 abstract—抽象方法,在抽象类中没有实现的方法 native—本地方法,参见Java Native Interface(JNI)

synchronized —在多线程中,synchronized方法调用时,其他所有方法不能调用该方法

3.接口(interface)

可见性修饰符:public—所有类中可见

缺省—同一个包中可见

接口中的变量总是需要定义为“ public static final 接口名称”,但可以不包含这些修饰符,编译器默认就是这样

接口中的方法只能使用public和abstract修饰符

第三篇:java个人小结(范文模版)

原文[202_年03月25日 星期日 上午 03:04]

Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE。这三块相互补充,应用范围不同。

J2SE就是Java2的标准版,主要用于桌面应用软件的编程;

J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;

J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。先学习j2se

要学习j2ee就要先学习j2se,刚开始学习j2se先建议不要使用IDE,然后渐渐的过渡到使用IDE开发,毕竟用它方便嘛。学习j2se推荐两本书,《java2核心技术一二卷》,《java编程思想》,《java模式》。其中《java编程思想》要研读,精读。这一段时间是基本功学习,时间会很长,也可能很短,这要看学习者自身水平而定。

不要被IDE纠缠

在学习java和j2ee过程中,你会遇到五花八门的IDE,不要被他们迷惑,学JAVA的时候,要学语言本身的东西,不要太在意IDE的附加功能,JAVA编程在不同IDE之间的转换是很容易的,过于的在意IDE的功能反而容易耽误对语言本身的理解。目前流行的IDE有jbuilder,eclipse和eclipse的加强版WSAD。用好其中一个就可以了,推荐从eclipse入手j2ee。因为Jbuilder更适合于写j2se程序。

选择和学习服务器使用配置

当你有了j2se和IDE的经验时,可以开始j2ee的学习了,web服务器:tomcat,勿庸置疑,tomcat为学习web服务首选。而应用服务器目前主要有三个:jboss、weblogic、websphere。有很多项目开始采用jboss,并且有大量的公司开始做websphere或weblogic向jboss应用服务器的移植(节省成本),这里要说的是,学习tomcat和jboss我认为是首选,也是最容易上手的。学习服务器使用配置最好去询问有经验的人(有条件的话),因为他们或许一句话就能解决问题,你自己上网摸索可能要一两天(我就干过这种傻事),我们应该把主要时间放在学习原理和理论上,一项特定技术的使用永远代替不了一个人的知识和学问。

学习web知识

如果你是在做电子商务网站等时,你可能要充当几个角色,这是你还要学习:

html,可能要用到dreamwave等IDE。

Javascript,学会简单的数据校验,数据联动显示等等

J2eeAPI学习

学习j2eeAPI和学习服务器应该是一个迭代的过程。

先学习jsp和servlet编程,这方面的书很多,我建立看oreilly公司的两本《jsp设计》和《java servlet编程》,oreilly出的书总是那本优秀,不得不佩服。

学习jdbc数据库编程,j2ee项目大多都是MIS系统,访问数据库是核心。这本应属于j2se学习中,这里拿出来强调一下。

学习jndi api,它和学习ejb可以结合起来。

学习ejb api,推荐书《精通ejb》

经过上面的这些的学习,大概可以对付一般的应用了。

有人说跟着sun公司的《j2ee tutorial》一路学下来,当然也可以。

学习ejb设计模式和看代码(最重要)

设计模式是练内功,其重要性可以这么说吧,如果你不会用设计模式的话,你将写出一堆使用了ejb的垃圾,有慢又是一堆bug,其结果不如不用ejb实现(ejb不等于j2ee)

无论学习什么语言,都应该看大量代码,你看的代码量不到一定数量,是学不好j2ee的目前有很多开源的工程可以作为教材:

jive论坛

petstore sun公司

dune sun公司

等等,研读一个,并把它用到自己的工程中来。

J2ee其他学习

当你渐渐对j2ee了解到一定深度时,你要开始关注当前领域中的一些技术变化,J2ee是一块百家争鸣的领域,大家都在这里提出自己的解决方案,例如structs,hiberate,ofbiz等等,学习这些东西要你的项目和目标而定,预先补充一下未尝不可,但不用涉及太深,毕竟学习原理和理论是最最重要的事。

目前常见j2eeAPI

JavaServer Pages(JSP)技术1.2

Java Servlet技术2.3

JDBC API 2.0

Java XML处理API(JAXP)1.1

Enterprise JavaBeans技术2.0

Java消息服务(JMS)1.0

Java命名目录接口(JNDI)1.2

Java事务API(JTA)1.0

JavaMail API 1.2

JavaBeans激活架构(JAF)1.0

J2EE连接器体系结构(JCA)1.0

Java认证和授权服务(JAAS)1.0

学习上面的某些API要以你的项目而定,了解所有他们总之是有好处的上面印证了大家说的一句话,java语言本身不难学,但是技术太多,所以学java很费劲。回想一下,基本上每个初学者,在刚学习java的时候可能都会问别人这么一句话,你怎么知道的哪个方法(api)在哪个包里的?呵呵,无他,唯手熟尔。

202_年10月29日 星期三 下午 9:29

第四篇:java小结

//1.累加 public class 累加 {

}

//2.阶乘

public class 30的阶乘 {

} public static void main(String[] args){

} int product=1;for(int i=1;i<=30;i++){ product=*i;} public static void main(String[] args){

} int i=1;for(int counter=1;counter<=100;counter++){ } System.out.println(i);i+=counter;

//3.倒序输出

法1 用char数组思想 import java.util.Scanner;public class 逆序输出 {

public static void main(String[] args){

Scanner scan=new Scanner(System.in);// String input[]=new String[4];input=scan.nextLine();// huiche

// String result=“";char[] Array=input[4].toCharArray();for(int i=Array.length-1;i>=0;i--){

} result+=Array[i];} System.out.println(result);} //倒序输出 法2 用reverse()方法 import javax.swing.JOptionPane;public static void main(String[] args){

}

String a = null;StringBuffer b;//输入

a=JOptionPane.showInputDialog(a);StringBuffer c1=new StringBuffer(a);b=c1.reverse();System.out.println(b);

//4.输出100 121 144...361 public class平方输入数组 {

}

//5.求最大公约数

private static int gys(int m,int n)

{

if(n==0)

return m;else public static void main(String[] args){

} int[] array=new int[10];for(int i=0;i<10;i++){ } array[i]=Math.pow((i+10),2.0);

for(int k=0;k

return gcd(n,m%n);

}

//6.求最小公倍数

public static int gbs(int n1,int n2){

int a =(n1>n2)? n1 : n2;

for(int j=a;j<=n1*n2;j++)

{

if(j%n1==0 && j%n2==0)

{

return j;

}

}

return 0;}

//7.1)十进制整数转化为二进制整数采用“除2取余,逆序排列” import java.util.Scanner;public class Main {

public static void main(String[] args){ //第一行输入要几组测试数据

int N=0,a;//N为输入几组数据,a为输入的十进制数字

} String b = null;Scanner scan=new Scanner(System.in);N=scan.nextInt();Main num=new Main();for(int i=1;i<=N;i++){

} a=scan.nextInt();b=num.deimalBinary(a);int d=num.Calcute(b);if(d%2==0)System.out.println(”Even“);else

System.out.println(”Odd“);

/*一个方法得到二进制数,用递归

*用2去除十进制整数,可以得到一个商和余数;

*再用2去除商,又会得到一个商和余数,} *如此进行,直到商为零时为止,*然后把先得到的余数作为二进制数的低位有效位,*后得到的余数作为二进制数的高位有效位,依次排列起来

*/ public String deimalBinary(int a){

} public int Calcute(String b){

} char[] Array=b.toCharArray();for(int i=0;i

} if(Array[i]=='1'){ } counter+=1;return counter;

//7.2)十进制小数转换为二进制小数采用“乘2取整,顺序排列”

/*用2乘十进制小数,可以得到积,*将积的整数部分取出,再用2乘余下的小数部分,//8.矩阵运算(加减乘)//矩阵运算 *又得到一个积,再将积的整数部分取出,*如此进行,直到积中的小数部分为零,*或者达到所要求的精度为止。

*然后把取出的整数部分按顺序排列起来,*先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。*/ import java.util.Scanner;public class Main { public static void main(String[] args){

int N1,M1,N2,M2,K;Scanner scan=new Scanner(System.in);N1=scan.nextInt();M1=scan.nextInt();int[][] a=new int[N1][M1];for(int i=0;i

for(int j=0;j

N2=scan.nextInt();M2=scan.nextInt();int[][] b=new int[N2][M2];for(int i=0;i

{ } b[i][j]=scan.nextInt();} K=scan.nextInt();if(K==1)//加法 {

int[][] c=new int[N1][M1];for(int i=0;i

} {

for(int j=0;j

}

System.out.println();} } if(K==2)//减法 {

int[][] c=new int[N1][M1];for(int i=0;i

} for(int j=0;j

for(int j:i){ System.out.print(j+” “);} System.out.println();} } if(K==3)//乘法 {

int[][] c=new int[N1][M2];for(int i=0;i

} {

for(int j=0;j

} for(int p=0;p

c[i][j]+=a[i][p]*b[p][j];for(int[] i:c)for(int j:i){ System.out.print(j+” “);} System.out.println();}

} } } 9.//保留确定位数输出

import java.text.DecimalFormat;//非四舍五入

DecimalFormat myformat=new DecimalFormat(”#0.00");

myformat.format(double num);//四舍五入,例为保留2位

double f=3.1415926;

BigDecimal a=new BigDecimal(f);

double af=a.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();

第五篇:类、方法、属性访问修饰符与修饰符小结

Java中各种(类、方法、属性)访问修饰符与修饰符的说明

类:

访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称(访问修饰符与修饰符的位置可以互换)访问修饰符 名称 说明 备注

可以被本项目的所有类访问(使用),其他项目若想使用public类必须定public 本项目中的类,必义在和类名相同的须将本项目打包为同名文件中 jar包,然后加入到classpath中

默认的访问权限,可以省略此关键

只能被同一个包中(default)字,可以定义在和的类访问(使用)

public类的同一个文件中

修饰符 名称 说明 备注

使用此修饰符的类final

不能够被继承

类只要有一个 如果要使用abstract方法,类就abstract类,之前必须定义为abstract 必须首先建一个继abstract,但

承abstract类的新abstract类不一定类,新类中实非要保护abstractabstract类中的抽方法不可 象方法。

(abstract也可以

修饰内部类)

综上知:类的访问修饰符只有两个:public、package 但是特殊的情况下:成员内部类和静态内部类前面还可以有protected、private访问修饰符(而局部内部类和匿名内部类没有这两种修饰符),同时静态内部类也可以有static修饰符 变量

1.Java中没有全局变量,只有方法变量、实例变量(类中的非静态变量)、类变量(类中的静态变量)。

2.方法中的变量不能够有访问修饰符。所以下面访问修饰符表仅针对于在类中定义的变量。

3.声明实例变量时,如果没有赋初值,将被初始化为null(引用类型)或者0、false(原始类型)。

4.可以通过实例变量初始化器(又叫实例块)来初始化较复杂的实例变量,实例变量初始化器是一个用{}包含的语句块,在类的构造器被调用时运行,运行于父类构造器之后,构造器之前。

5.类变量(静态变量)也可以通过类变量初始化器来进行初始化,类变量初始化器(又叫静态块)是一个用static{}包含的语句块,只可能被初始化一次。访问修饰符 名称 说明 备注

可以被任何类public

访问

可以被所有子

子类没有在同一包protected 类访问,可以

中也可以访问

被同一包中的所有类访问

private 只能够被当前

类的方法访问

可以被同一包如果子类没有在同缺省

中的所有类访一个包中,也不能无访问修饰符

问 访问

##上面所说的变量都是成员变量,局部变量前是没有访问修饰符的,因为局部变量的生命周期只在当前函数中,再声明访问修饰符没有意义

修饰符 名称

说明 静态变量(又称为类变量,其它的称为实例变量)常量,值只能够分配一次,不能更改 static final

备注

可以被类的所有实例共享。

并不需要创建类的实例就可以访问静态变量

注意不要使用

const,虽然它和C、C++中的const关键

字含义一样

可以同static一起使用,避免对类的每个实例维护一个拷贝

告诉编译器,在类对象序列化的时候,此变量不需要持久保存

指出可能有多个线程修改此变量,要求编译器优化以保证对此变量的修改能够被正确的处理

主要是因为改变量可以通过其它变量来得到,使用它是为了性能的问题 transient volatile

方法

访问修饰符 修饰符 返回类型 方法名称(参数列表)throws 违例列表

1.类的构造器方法(也叫构造方法)不能够有修饰符、返回类型和throws子句 2.类的构造器方法被调用时,它首先调用父类的构造器方法,然后运行实例变量和静态变量的初始化器,然后才运行构造器本身。3.如果构造器方法没有显示的调用一个父类的构造器,那么编译器会自动为它加上一个默认的super(),而如果父类又没有默认的无参数构造器,编译器就会报错。super必须是构造器方法的第一个子句。4.注意理解private构造器方法的使用技巧。

###其实构造方法前也可以有public / protected /private 访问修饰符(这三个默认可以不写 或者写 public)和void修饰符(默认可以不写);但是绝对不能有final、static修饰符 访问修饰符 名称 说明 备注

可以从所有类public

访问

可以被同一包中的所有类访

子类没有在同一包protected 问

中也可以访问

可以被所有子类访问

只能够被当前private

类的方法访问

缺省 可以被同一包如果子类没有在同无访问修饰符 中的所有类访一个包中,也不能

修饰符 名称

访问

说明

static final abstract native synchronized

备注

提供不依赖于类实例

静态方法(又的服务

称为类方法,并不需要创建类的实

其它的称为

例就可以访问静态方

实例方法)

注意不要使用const,虽然它和C、C++中的防止任何子

const关键字含义一样

类重载该方

可以同static一起使

用,避免对类的每个实例维护一个拷贝

抽象方法,类不能将static方法、中已声明而final方法或者类的构没有实现的造器方法声明为方法 abstract 用该修饰符定义的方法参见Sun的Java 在类中没有Native接口(JNI),实现,而大多JNI提供了运行时加载数情况下该一个native方法的实方法的实现现,并将其于一个Java是用C、C++类关联的功能 编写的。

当一个此方法被调用时,没有其它线程能够

多线程的支调用该方法,其它的持 synchronized方法也

不能调用该方法,直到该方法返回

接口

访问修饰符 interface 接口名称 extends 接口列表 1.接口不能够定义其声明的方法的任何实现 2.接口中的变量总是需要定义为“public static final 接口名称”,但可以不包含这些修饰符,编译器默认就是这样,显示的包含修饰符主要是为了程序清晰 访问修饰符 名称 说明 备注 public 所有

无访问修饰符(默认)同一个包内

java个人小结——修饰符
TOP