导航:首页 > 知识科普 > 静态方法怎么使用

静态方法怎么使用

发布时间:2024-07-13 20:46:48

㈠ 静态方法的方法使用

静态方法与静态变量一样,属于类本身,而不属于那个类的一个对象。调用一个被定义为static的方法,可以通过在它前面加上这个类的名称,也可以像调用非静态方法一样通过类对象调用。
实例方法必须通过类的实例来使用。实例方法可以使用类的非静态成员,也可以使用类的静态成员。
类的静态方法,静态变量是在类装载的时候装载的。但是要特别注意,类的静态变量是该类的对象所共有的,即是所有对象共享变量。所以建议尽量少用静态变量。尽量在静态方法中使用内部变量。 其中static关键字即表示静态的。声明静态方法的语法如下:
<访问修饰符>static返回类型 方法名(参数列表)
{//方法体} 静态方法与实例方法唯一不同的,就是静态方法在返回类型前加static关键字。静态方法的调用有两种途径:
(1)通过类的实例对象去调用
调用格式为: 对象名.方法名
(2) 通过类名直接调用
调用格式为: 类名::方法名 我们在使用时要注意:
静态方法只能访问类的静态成员,不能访问类的非静态成员;
非静态方法可以访问类的静态成员,也可以访问类的非静态成员;
静态方法既可以用实例来调用,也可以用类名来调用。 #include<iostream>using namespace std;
class CStaticTest{public:CStaticTest(int a){this->a = a;}~CStaticTest(){}
static int add(CStaticTest& c1, CStaticTest& c2){return c1.a + c2.a;}
private:int a;};
int main(){CStaticTest tmp1(1);CStaticTest tmp2(2);int sum1 = tmp1.add(tmp1, tmp2);int sum2 = CStaticTest::add(tmp1, tmp2);
cout << sum1 << endl;cout << sum2 << endl;return 0;} 1. 有静态属性的类,一般会定义静态方法。
2. 没有属性的类,一般会定义静态方法,这样在使用时,通过类名::方法名即可调用,
而不用先定义对象,再调用,这样可以省去一行代码。

㈡ JAVA中使用静态方法

编程时我们心里一定要清楚静态方法和类的非静态方法方法的区别:
最根本区别从编译角度来说吧:
1)静态(static)方法是编译时直接加载加载到内存中(离cpu最近的一块内存区域也称为堆栈),比如程序的public static main(args []){}方法,你能实例话吗?
静态方法不能被实例化,也不允许被实例化!
现在很多Java集成工具边写边编译的
因此 你可以通过“类名”+“.”+“静态方法的名()”来调用
2)非静态方法(类的非静态方法)通过关键字 “new” 字来实例化一个对象(object),这个对象放在 内存的另一块区域 堆(heap)中。
也就是说编译时,非静态方法必须先实例化类的一个对象,通过“对象名”+“非静态方法名()”来调用;
public class Student
{
private String name;
/************************************************************
*下面两个方法是类的非静态方法封装 属性name,看一下在 main()
*如何调用
************************************************************/
public set(string init_name)
{
this.name = init_name;
}
publc String get()
{
return this.name;
}
//构造函数
public Student(){}
public Student(String init_name)
{
this.name = init_name;
}

//下面是一个静态方法,看一下它在main()中如何调用
public static void PrintClassName()
{
System.out.print("该类的名字:Student");
}
}
//MainClass类
pubic class MainClass
{
public static void main(args[])
{
//先调用静态方法,不需要实例化对象
Student.PrintClassName();
//现在调用非静态方法,一定要实例化对象
Student stu1 = new Student();
stu1.set("Join");
String stu1_name = stu1.get();
}

}

㈢ Java中的静态方法是什么

静态方法是在类中使用staitc修饰的方法,在类定义的时候已经被装载和分配。

静态方法为类所有,可以通过对象来使用,也可以通过类来使用。

我们之前一直写的mian方法仔细看看,它就是一个静态方法,静态方法使用如下:

㈣ 静态方法怎么调用

先在eclipse中创建一个Java工程文件。并在src下创建demo包,在demo包下创建类DemoClass。创建后的工程目录如图。

02
接下来在DemoClass类中添加一个静态属性和静态方法。被static修饰的属性或方法就是静态的。

03
对于静态方法的调用,可以使用调用非静态方法的方式去调用,即创建一个类的对象,然后再调用静态方法,具体代码如下图。

04
编辑好代码后,通过java应用程序的方式运行DemoClass.java文件,运行结果如图2,说明成功调用了静态方法。

05
不过,上面调用静态方法的方式是不推荐的。如果使用上面的方式调用静态方法,在eclipse中,你可以看到下图的警告,大概的意思是要你使用正确的调用静态方法的方式去调用该方法。

06
对于静态方法,正确调用的方式是直接通过类名来调用的。用调用例子中的staticFunction为例,正确调用该方法的代码为
DemoClass.staticFunction。当用类来调用静态方法时,可以看到eclipse就不报警告了。

07
再次运行该文件,运行结果和刚刚一样,说明也成功调用了静态方法。

08
多说一句,对于静态属性的调用,也是用类名+点+静态属性的方式来调用的,正常都不会先创建一个对象,然后再通过对象来调用静态属性。

㈤ 怎么调用静态方法

静态方法不能访问非静态的实例变量和实例方法。实例方法可以访问静态成员和非静态成员。
1在本来中直接调用静态方法
2可以通过类名来调用该类的静态方法
3通过实例调用静态方法
// 外部类,不能是静态的
public class OuterClass {

// 静态方法,又称为类方法,属于Test类
public static void staticFun() {
}

// 非静态方法,又称为实例方法,属于Test类的具体实例
public void nonStaticFun() {
}

// 静态内部类,静态类只能是内部类
public static class StaticInnerClass {

// 静态方法,属于StaticInnerClass类
public static void staticFun() {
}

// 非静态方法,属于StaticInnerClass类的实例
public void nonStaticFun() {
}
}

// 非静态内部类,不能有静态方法
public class NonStaticInnerClass {

// 非静态方法,属于NonStaticInnerClass的实例
public void nonStaticFun() {
}
}

// 测试代码如下:
public static void main(String[] args) {
// 对于静态方法,使用类直接访问
OuterClass.staticFun();
StaticInnerClass.staticFun();

// 对于非静态方法,需要使用类的实例访问
new OuterClass().nonStaticFun();
new StaticInnerClass().nonStaticFun();

// 对于非静态内部类,必须创建外部类后才能使用
OuterClass outerClass = new OuterClass();
NonStaticInnerClass nonStaticInnerClass = outerClass.new NonStaticInnerClass();
nonStaticInnerClass.nonStaticFun();
}
}

㈥ 静态方法怎么调用

C++中,若类的 方法 前加了static关键字,则该方法称为静态方法,反之为实例方法。那么,静态方法怎么调用?

C#的类中可以包含两种方法:静态方法和非静态方法。

使用了static 修饰符的方法为静态方法,反之则是非静态方法。

静态方法是一种 特殊的成员方法,它不属于类的某一个具体的实例,而是属于类本身。

所以对静态方法不需要 首先创建一个类的实例,而是采用类名.静态方法的格式 。

1.static方法是类中的一个成员方法,属于整个类,即不用创建任何对象也可以直接调用!

static内部只能出现static变量和其他static方法!而且static方法中还不能使用this....等关键字..因为它是 属于整个类!

2.静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。

3.静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存.

4.C#中的方法有两种:实例方法,静态方法. 类的方法代码只有一份,它们的生命周期和类是一致的.实例方法是通过对象名调用的,静态方法与类关联而不是 与对象名关联.

5.那么在程序中什么地方可以利用静态字段和静态构造方法,通常适用于于一些不会经常变化而又频繁使用的数 据,比如连接字符串,配置信息等,当满足上面所 说的两点时,进行一次读取,以后就可以方便的使用了,同 时也节约了托管资源,因为对于静态成员,一个静态字段只标识一个存储位置。

对一个类无论创建了多少 个实 例,它的静态字段永远都只有一个副本(副本我理解为只有一块内存 静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员 存在于内存,所以非静态成员可以直接访问类中静态的成员.

公用的处理函数,使用静态方法应该没有问题..牵涉 到数据共享,静态变量的函数要多考虑...静态变量要小心使用..

静态方法 原理就是共享代码段 共享代码段不会产生任何问题 因为代码段都是给CPU作为"读取"用的,除非你进行恶意"修改"运行时的代码段 所以静态方法是可以放心使用的

静态变量 原理就是共享数据段 同上 只要没有进行"写入"操作就不会产生问题 但是数据通常都是用于读和写 所以静态变量要注意使用

下面是一个使用静态方法的例子

复制代码代码如下:

class Class1 {

[STAThread]

static void Main(string[] args)

{

int i = MyClass.Add(3,5); //调用静态方法

Console.WriteLine(i);

}

}

class MyClass

{

public static int Add(int x,int y )

{ return x + y ;

}

㈦ JAVA缂栫▼涓璼tatic镄勭敤阃斾笌鐢ㄦ硶

1淇楗扮static
1锛夐润镐佺被鍙橀噺锛堜慨楗版垚锻桦彉閲忥级锛
1.Static int data璇鍙ヨ存槑data涓虹被鍙橀噺锛屼负涓涓绫荤殑鍏变韩鍙橀噺锛屾槸镓链夊硅薄鍏变韩镄勶纴瀹冧笉
灞炰簬浠讳綍瀵硅薄锛屾槸灞炰簬鏁翠釜绫荤殑锛堥润镐佹柟娉曚篃鏄涓镙凤级銆
2.Static瀹氢箟镄勬槸涓鍧椾负鏁翠釜绫诲叡链夌殑涓鍧楀瓨鍌ㄥ尯锘熴
3.鍏跺彉閲忓彲浠ラ氲繃绫诲悕铡昏块梾锛氱被钖.鍙橀噺钖嶏纸涓庨氲繃瀵硅薄寮旷敤璁块梾鍙橀噺鏄绛変环镄勶级銆
2锛夐润镐佹柟娉曪纸淇楗版柟娉曪级锛
1.Public static void printData(){}锛氲〃鏄庢ょ被鏂规硶涓虹被鏂规硶锛堥润镐佹柟娉曪级锛岃块梾鏄鍦ㄧ紪璇戞湡
瀹屾垚锛屾墽琛屾晥鐜囨瘆杈冮珮銆
2.闱欐佹柟娉曚笉闇瑕佹湁瀵硅薄锛屽彲浠ヤ娇鐢ㄧ被钖嶈皟鐢锛堜笉闇瑕佸疄渚嬩篃鍙浠ヨ皟鐢ㄩ润镐佹柟娉曪级銆3.闱欐佹柟娉曚腑涓嶈兘璁块梾绫荤殑闱为润镐佹垚锻桡纴鍖呮嫭鎴愬憳鍙橀噺鍜屾柟娉曪绂鍙鑳借块梾链绫讳腑镄勯润镐
鍙橀噺鍜屽叾瀹冮润镐佹柟娉曘傚洜涓烘ゆ椂鏄阃氲繃绫昏皟鐢ㄧ殑锛屾病链夊硅薄镄勬傚康銆傛柟娉曚腑this.data鍜
super.data鏄涓嶅彲鐢ㄧ殑銆
铡熷洜锛氢粠镙规湰涓婅达纴闱欐佸彉閲忎笉绠$被鏄钖﹀疄渚嫔寲閮戒细瀛桦湪锛岃屽疄渚嫔彉閲忓彧链夌被瀹炰緥鍖栦简
镓嶅瓨鍦ㄣ傜洿鎺ヨ皟鐢ㄩ润镐佹柟娉曟椂骞朵笉纭瀹氩疄渚嫔彉閲忔槸钖﹀瓨鍦ㄣ
4. 涓鑸𨱍呭喌涓嬶纴涓绘柟娉曟槸闱欐佹柟娉曪纴镓浠JVM鍙浠ョ洿鎺ヨ皟鐢ㄥ畠锛屼富鏂规硶涓洪润镐佹柟娉曟槸锲
涓哄畠鏄鏁翠釜杞浠剁郴缁熺殑鍏ュ彛锛岃岃繘鍏ュ叆鍙f椂绯荤粺涓娌℃湁浠讳綍瀵硅薄锛屽彧鑳戒娇鐢ㄧ被璋幂敤銆
5.闱欐佹柟娉曚笉鑳借瑕嗙洊锛屽傛灉瀛愮被涓链夊拰鐖剁被閲嶅悕镄勯润镐佹柟娉曪纴铏界劧缂栬疟阃氲繃锛屼絾瀹冨苟
涓嶈兘瀹炵幇澶氭侊纴镓浠ヤ笉鑳界О浣滆嗙洊銆备緥濡傦细class Super{
static public void show(){System.out.println("in Super");}
}class Sub extends Super{
static public void show(){System.out.println("in Sub");}
}
public class Test {
public static void main(String[] arg) {
Super s = new Sub();
s.show();
}
}
镓ц岀粨鏋沧槸锛 in Super3锛夐润镐佷唬镰佸潡锛堜慨楗版病链夊悕瀛楃殑浠g爜鍧楋级锛
1.鍙琚镓ц屼竴娆★绂
2.鍒濆嫔寲鍧楀湪绫昏锷犺浇钖庨栧厛琚杩愯岋纴涓岖$被鏄钖﹀疄渚嫔寲锛岃屼笖鍙镓ц岃繖涓娆
3.浣灭敤锛氢竴鑸鐢ㄦ潵鍒濆嫔寲涓浜涘嶆潅绫诲瀷镄勯润镐佸彉閲忋
4锛夐润镐佸唴閮ㄧ被锛堟敞镒忥细鍙鑳戒慨楗版垚锻桦唴閮ㄧ被锛夛细
class Out{
public static class Inner{}
}5锛塖tatic阃氩父鐢ㄤ簬Singleton妯″纺寮鍙戯细
Singleton妯″纺(鍗曚緥妯″纺)锛氭槸涓绉嶈捐℃ā寮忥纴楂树簬璇娉曪纴鍙浠ヤ缭璇佷竴涓绫诲湪鏁翠釜绯荤粺
涓浠呮湁涓涓瀵硅薄銆
1.闂棰桦烟锛
绯荤粺涓浣犻渶瑕佽幏寰楁煇涓绫荤殑鍞涓瀹炰緥锛屾墍链夊㈡埛绔瀵瑰畠镄勮块梾閮藉皢阃氲繃涓涓鍏鍏辩殑璁块梾镣硅幏寰椼
2.瑙e喅鏂规堬细鍒涘缓涓涓绫诲苟浣垮叾
a.瀹氢箟涓涓绉佹湁镄勬瀯阃犲櫒锛
b.瀹氢箟涓涓绉佹湁銆侀润镐佺殑瀹炰緥鍙橀噺鎸囧悜镊宸(绫诲瀷鏄镊宸辩殑绫诲瀷)锛
c.瀹氢箟涓涓鍏链夈侀润镐佺殑璁块梾鏂规硶getInstance()鐢ㄤ簬杩斿洖璇ョ被镄勫敮涓瀹炰緥(娉锛
镍掓眽寮忛渶钖屾)銆 3.鍒嗙被锛
a.楗挎眽寮忥细鍦ㄧ被瑁呰浇镄勬椂鍊椤氨杩涜屽疄渚嫔寲锛
b.镍掓眽寮忥细鍦ㄥ叕链夈侀润镐佺殑璁块梾鏂规硶(钖屾ワ细鐢╯ynchronized淇楗)涓杩涜屽疄渚嫔寲锛
鐢ㄧ殑澶氢竴浜涖 瀹炵幇1锛
public class ConnectionFactory{
private static Connection conn;
private Connection(){
if(conn==null)
conn = new Connction();
}
public Connection getInstance(){
return conn;
}
}瀹炵幇2锛
public class ConnectionFactory{
private static Connection conn;
static{
conn = new Connection();
}
public static Connection getInstance(){
return conn;
}
}

阅读全文

与静态方法怎么使用相关的资料

热点内容
高处作业平台和吊臂连接方法 浏览:165
清洁鼻子的正确方法 浏览:214
乳贴的使用方法图解 浏览:314
中国什么时候懂得造纸的方法 浏览:395
常用的焊接性试验方法有哪些 浏览:766
盆栽红玫瑰种子的种植方法 浏览:521
男的手臂围的正确测量方法 浏览:115
道路曲折的解决方法 浏览:44
快速预约动物园之星的方法 浏览:515
影响药物溶解度的解决方法 浏览:744
五菱荣光倒挡变速箱响解决方法 浏览:542
测量星际距离的方法 浏览:636
古筝大指和食指练习方法怎么达到熟练 浏览:893
红薯秧子的培育方法视频 浏览:253
女生分手后如何忘记另一半方法 浏览:110
v爱凝胶的使用方法 浏览:523
新电烙铁的使用方法 浏览:911
太阳能继电器安装方法 浏览:954
车顶棚霉斑怎么处理方法 浏览:586
网线检测器的使用方法 浏览:373