最近在做一个能分析java代码中函数开始和结束,以及取得函数信息(函数所属类名,函数名,函数返回值类型,限定词类型等)的程序。但是对java不是很熟,想知道除了常见的类和函数的构成类型外还有没有其他的类型。
下面是我自己总结的一些类型,不知道还有没有其他的类型。谢谢大虾们指教阿①限定词 class 类名{
限定词 static 返回值类型 方法名()
{
}
} public class test1 {
public static void test() {
System.out.println("test1");
}
} ②限定词 class 类名 extends 父类()class classname extends superclassname
{
type instance-variable1;
type instance-variable2;
..............................
type instance-variableN;
type methodname1(parameter-list)
{
method-body;
}
type methodname2(parameter-list)
{
method-body;
}
................................
type methodnameN(parameter-list)
{
method-body;
}
} ③接口
限定词 class 类名 implements 接口名{
} public interface Face {
public void smile();
}
public class Baz extends Bar implements Face {
public void smile( ) {
System.out.println("a warm smile");
}
}
[/code]抽象
abstract class A
{
abstract void callme( ) ;
void metoo( )
{
system.out.println(\"在A的metoo成 员 函 数 里\");
}
}class B extends A
{
void callme( )
{
System.out.println(\"在B的callme成 员 函 数 里\");
}
} 静态class Static
{
static int a = 3;
static int b; 静态变量
static void method(int x) 静态成员函数
{
System.out.println(\"x = \" + x);
System.out.println(\"a = \" + a);
System.out.println(\"b = \" + b);
}
static 一个静态初始块
{
System.out.println(\"静 态 初 始 块\");
b = a * 4;
}
public static void main(String args[])
{
method(42);
}
} 下面是一些函数类型
①成员函数type methodname ( formal-parameter-list )
{ method-body; } ②静态成员函数 static void method(int x)
{
System.out.println(\"x = \" + x);
System.out.println(\"a = \" + a);
System.out.println(\"b = \" + b);
} ③抛出异常
限定词 static 返回值类型 方法名() throws 异常类型 [code=Java]
public class test1 {
public static void test() throws
Exception {
System.out.println("test1");
}
}
还有一些,比较特殊的函数
构造函数(Constructor)
它具有和它所在的类完全一样的名字。构造函数没有返回类型。
成员函数重载
名字相同、参数不同的成员函数。 函数前可以加一些修实现至词final不知道还有什么?final
在缺省情况下,所有的成员函数和实例变量都可以被覆盖。
如果你希望你的变量或成员函数不再被子类覆盖,可以把它们声明为final。
除了这些还有什么java的class和函数声明的方式阿,求大家指教阿:)
下面是我自己总结的一些类型,不知道还有没有其他的类型。谢谢大虾们指教阿①限定词 class 类名{
限定词 static 返回值类型 方法名()
{
}
} public class test1 {
public static void test() {
System.out.println("test1");
}
} ②限定词 class 类名 extends 父类()class classname extends superclassname
{
type instance-variable1;
type instance-variable2;
..............................
type instance-variableN;
type methodname1(parameter-list)
{
method-body;
}
type methodname2(parameter-list)
{
method-body;
}
................................
type methodnameN(parameter-list)
{
method-body;
}
} ③接口
限定词 class 类名 implements 接口名{
} public interface Face {
public void smile();
}
public class Baz extends Bar implements Face {
public void smile( ) {
System.out.println("a warm smile");
}
}
[/code]抽象
abstract class A
{
abstract void callme( ) ;
void metoo( )
{
system.out.println(\"在A的metoo成 员 函 数 里\");
}
}class B extends A
{
void callme( )
{
System.out.println(\"在B的callme成 员 函 数 里\");
}
} 静态class Static
{
static int a = 3;
static int b; 静态变量
static void method(int x) 静态成员函数
{
System.out.println(\"x = \" + x);
System.out.println(\"a = \" + a);
System.out.println(\"b = \" + b);
}
static 一个静态初始块
{
System.out.println(\"静 态 初 始 块\");
b = a * 4;
}
public static void main(String args[])
{
method(42);
}
} 下面是一些函数类型
①成员函数type methodname ( formal-parameter-list )
{ method-body; } ②静态成员函数 static void method(int x)
{
System.out.println(\"x = \" + x);
System.out.println(\"a = \" + a);
System.out.println(\"b = \" + b);
} ③抛出异常
限定词 static 返回值类型 方法名() throws 异常类型 [code=Java]
public class test1 {
public static void test() throws
Exception {
System.out.println("test1");
}
}
还有一些,比较特殊的函数
构造函数(Constructor)
它具有和它所在的类完全一样的名字。构造函数没有返回类型。
成员函数重载
名字相同、参数不同的成员函数。 函数前可以加一些修实现至词final不知道还有什么?final
在缺省情况下,所有的成员函数和实例变量都可以被覆盖。
如果你希望你的变量或成员函数不再被子类覆盖,可以把它们声明为final。
除了这些还有什么java的class和函数声明的方式阿,求大家指教阿:)
你需要去彻底明白这些关键字声明的方法或者类的具体含义
public protected final
static
楼主总结的精神不错
,怕书上给出的不全阿
用C编程去获取java代码的这些类和函数信息已达到不同开发版本中相同函数之间的准确匹配和区分
倒是不用去复杂的此法分析,只要可以分析出函数的开始结束,以及判断不同版本的两个函数到底是否相同,
函数要是相同就需要函数所在的类相同,函数名称,返回值,修饰词,函数参数等相同,但是不知道这些因素到底有多少种
[public|protected|private] [final] [abstract] class ClassName [extends] Father [implements]
interface的:
[public|protected|private] [final] interface Name [extends] Father
方法的:
[public|protected|private] [final] [abstract|static] [syn] (return type) method(args) [throws exception ] 方括号中标示可选的
另外LZ,函数在JAVA里叫方法