java 类方法有什么用?java中,在一个类中在写一个类有什么用处啊有那些好处呢
很多朋友对于java 类方法有什么用和java中,在一个类中在写一个类有什么用处啊有那些好处呢不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
java中,什么是类,方法,函数 三者又有什么区别
类就是指一个种类,比如人,是一个类,动物也是一个类,等等
而如果特指某个人,则是实体。
在Java中,类的定义是:< class><类名>,通常,我们在Java中提到class,就是指类的意思。
(<>符号要去掉)
另外,方法与函数其实一样的,只是在C语言中我们习惯叫函数,而在Java中我们习惯叫方法,不管怎么叫,都是指同一个意思。
方法(或函数,为了方便,下面我都说方法)必须在类中。方法的定义:
<修饰符><返回值><方法名>(<参数类型><参数名>){.....}
(<>符号要去掉)
通常你看到一个带()的就是方法了,例如: aa.XXX();是指调用实体 aa的XXX()方法。
类可以拥有属性跟方法。方法在类中。
在类和方法中均创建某个类的实体,可以调用类的方法。
程序运行时,首先是从main()方法开始运行的。
main()函数必须放在跟你文件名同名的类中,另外一个class文件中只能有一个mian()方法,
否则,在编译运行的时候会出错。
java中Method类有什么作用
java Method类是最终类,不能继承,使用方式如下:
/**
*/
packagecom.timer.demo.objectsocket;
importjava.lang.reflect.Method;
/**
*@author崔冉
*
*/
publicclassInvokeTester{
publicintadd(intparam1,intparam2){
returnparam1+param2;
}
publicStringecho(Stringmesg){
return"echo"+mesg;
}
publicstaticvoidmain(String[]args)throwsException{
ClassclassType=InvokeTester.class;
Objectinvokertester=classType.newInstance();
MethodaddMethod=classType.getMethod("add",newClass[]{int.class,
int.class});
//Method类的invoke(Objectobj,Objectargs[])方法接收的参数必须为对象,
//如果参数为基本类型数据,必须转换为相应的包装类型的对象。invoke()方法的返回值总是对象,
//如果实际被调用的方法的返回类型是基本类型数据,那么invoke()方法会把它转换为相应的包装类型的对象,
//再将其返回
Objectresult=addMethod.invoke(invokertester,newObject[]{
newInteger(100),newInteger(200)});
//在jdk5.0中有了装箱拆箱机制newInteger(100)可以用100来代替,系统会自动在int和integer之间转换
System.out.println(result);
MethodechoMethod=classType.getMethod("echo",
newClass[]{String.class});
result=echoMethod.invoke(invokertester,newObject[]{"hello"});
System.out.println(result);
}
}
在java中,用类名修饰的方法都有什么作用,都什么时候用
可见/访问性在同一类中同一包中不同包中同一包子类中不同包子类中
public yes yes yes yes yes
protected yes yes no yes yes
package yes yes no yes no
private yes no no no no
(1)在java中有public、protected、private三种显示的修饰符用于控制可见性,package不是显示的修饰符,它是隐含的,即如果在类、变量等前没加显示的可见性修饰符,那它就是package级别的。如果在类的定义中没有指定package,那么java会把它放在缺省包中,一般来说这个缺省的包就是当前目录。
(2)在子类中的方法如果重载了父类的方法,那么该方法的可见级别应更底或者相同,如父类中的方法是public,那么子类中方法必须是public。
(3)在java中,一般来说,变量成员最好是private,对它们的访问可以通过public的方法,在这些方法中可以做些控制以保证数据的一致性。这些方法名一般以get和set做为前缀。
java中,在一个类中在写一个类有什么用处啊有那些好处呢
那个叫内部类
定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、protected、private等访问限制,可以声明为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的接口。static的内部类行为上象一个独立的类,非static在行为上类似类的属性或方法且禁止声明static的方法。内部类可以访问外部类的所有方法与属性,但static的内部类只能访问外部类的静态属性与方法。
外部类按常规的类访问方式使用内部类,唯一的差别是外部类可以访问内部类的所有方法与属性,包括私有方法与属性。如:
pinner p= new pinner();
p.index= 20;
p.Print();
----这种方式适合外部类的非static方法;
pouter po= new pouter();
pinner pi= po.new pinner();
pi.index= 40;
pi.Print();
----这种方式适合外部类的static方法;
内部类类似外部类的属性,因此访问内部类对象时总是需要一个创建好的外部类对象。内部类对象通过‘外部类名.this.xxx’的形式访问外部类的属性与方法。如:
System.out.println("Print in inner Outer.index="+ pouter.this.index);
System.out.println("Print in inner Inner.index="+ this.index);
如果需要在其他类中访问内部类,可以使用:
(1)外部类提供创建内部类的方法供其他类使用。如:
//外部类
pinner getInner()
{
return new pinner();
}
//其他类
pouter.pinner pi= po.getInner();
pi.Print();
(2)直接创建内部类的对象。如:
pouter po= new pouter();
pouter.pinner pi= po.new pinner();
pi.Print();
内部类可以声明在外部类的方法中或语句块中。如果内部类需要访问包含它的外部类方法或语句块的局部变量或参数,则该局部变量或参数必须是final的。外部类的其他方法、其他类无法访问声明在方法内部或块内部的内部类。
如果一个类继承内部类,则创建该类的对象时需提供一个外部类的对象作为构造方法的参数。如:
class Car
{
class Wheel
{
}
}
class SuperWheel extends Car.Wheel
{
SuperWheel(Car car)
{
car.super();
}
public static void main(String [] args)
{
Car car= new Car();
SuperWheel wl= new SuperWheel(car);
}
}
如果创建命名的内部类没有多少实际意义时,可以创建匿名的内部类。比如使用内部类实现接口的功能(如事件处理器、适配器等),而功能的差异较大,需要根据实际的情况创建相应的内部类时,可以使用匿名内部类。简单的示例如下:
interface WebView
{
void doGet();
}
class A
{
WebView ShowName()
{
return new WebView()
{
void doGet()
{
System.out.println("Name");
}
};
}
WebView ShowCode()
{
return new WebView()
{
void doGet()
{
System.out.println("Code");
}
};
}
}
最后,JAVA内部类还有一个作用,那就是实现JAVA的多继承。JAVA本身是不允许多继承的,如果我们想一个类继承多个基类,就可以使用内部类。通过内部类分别继承一个基类,外部类创建内部类的对象,并使用内部类的方法,变相地实现了多继承。
文章到此结束,如果本次分享的java 类方法有什么用和java中,在一个类中在写一个类有什么用处啊有那些好处呢的问题解决了您的问题,那么我们由衷的感到高兴!