为什么main必须被声明为具有外部链接?
为什么它不应该是静态的?
什么是外部联系?
背景,前景和主线程之间有什么区别?.NET中的diff类型有哪些?
.net multithreading program-entry-point background foreground
package com.valami;
public class Ferrari
{
private int v = 0;
private void alam()
{
System.out.println("alam");
}
public Ferrari()
{
System.out.println(v);
}
public static void main(String[] args)
{
Ferrari f = new Ferrari();
f.v = 5;
System.out.println(f.v);
}
}
Run Code Online (Sandbox Code Playgroud)
大家好!我有一个简单的问题....为什么我可以从main方法到达私有变量?我知道,我在收容班,但这是主要的.我相信主要不是包含它的类的一部分...然后我不会找到私人成员,但我可以....为什么?请帮忙... thx
这样的事情存在吗?
红宝石:
if __FILE__ == $0
main
end
Run Code Online (Sandbox Code Playgroud)
Perl的:
unless(caller) {
main;
}
Run Code Online (Sandbox Code Playgroud)
LUA:
if type(package.loaded[(...)]) ~= "userdata" then
main(arg)
else
module(..., package.seeall)
end
Run Code Online (Sandbox Code Playgroud) IntelliJ IDEA 10.5(可能这很重要).
我是Scala的新手,所以我以一种尴尬的方式开始.我用两个类创建了一个文件 - 空的MainApp和另一个类,HelloWorld和方法main.
我编译并执行 - IntelliJ自动检测到HelloWorld为主类.还可以.
然后,我将main方法移动到MainApp,并删除(然后清空)HelloWorld类.当我试图运行它时,IntelliJ仍然坚持使用HelloWorld.所以我重新配置了项目并选择了MainApp作为主类.
我尝试用这样的结果运行它:
MainApp主要方法应该是静态的
我完全不解.首先,Scala没有静态方法.第二,为什么它现在不编译,之前编译(使用HelloWorld类).我虽然只要求有一个主要方法.
预先感谢您的帮助.
请注意:我知道我可以从头开始一个新项目以完全避免这个问题,但我想学习一些东西,即了解发生了什么,并修复这个项目.
请看我第一次尝试回答这个问题 .为了简化事情,我忽略了讲述整个故事.结果我的例子工作!抱歉.
整个故事是,这是一个库,在一个文件中包含一个类,另一个文件中包含一个主,所有这些都链接到我的库中.该库提供了流程框架的基础,这就是为什么主要是在库中而不是流程.
下面是我所拥有的精简版.
pf.hpp
using namespace std;
namespace MyNamespace
{
class ProcessManager
{
public:
friend int main(int argc, char** argv);
private:
void test();
};
};
Run Code Online (Sandbox Code Playgroud)
pf.cpp
#include "pf.h"
namespace MyNamespace
{
ProcessManager::test()
{
cout << "My friend has accessed my member" << endl;
}
};
Run Code Online (Sandbox Code Playgroud)
pfmain.cpp
#include "pf.hpp"
int main(int argc, char** argv)
{
ProcessManager pm;
pm.test();
}
Run Code Online (Sandbox Code Playgroud)
请注意,这在编译库时失败
我试过的是:
我错过了什么?
谢谢!
我知道main()可以在一个类中重载,编译器总是将一个String[] argsas作为参数作为执行开始的main方法.但是有可能宣布相同
main(String args[]) in an interface and implement it in different classes differently?
Run Code Online (Sandbox Code Playgroud)
例如,
package test;
interface test
{
public void main(String args[]);
public void display();
}
package test;
class Testclass1 implements test
{
public void display()
{
System.out.println("hello");
}
public static void main(String[] args)
{
test t;
t.display();
}
}
package temp;
import test.*;
abstract class Testclass2 implements test
{
public static void main(String args[])
{
System.out.println("TESTING");
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含多个类的java文件,其中一个是公共的.如果main方法在非公共类中.我无法运行该java文件.这是为什么?并且没有编译错误.如果是这样,我该如何使用该主要方法?
我无法想象下面我的代码有什么问题.
当我尝试编译时,我收到消息:
不包含适用于入口点的静态"主"方法.
这是我的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace RandomNumberGenerator
{
public partial class Form1 : Form
{
private const int rangeNumberMin = 1;
private const int rangeNumberMax = 3;
private int randomNumber;
public Form1()
{
randomNumber = GenerateNumber(rangeNumberMin, rangeNumberMax);
}
private int GenerateNumber(int min,int max)
{
Random random = new Random();
return random.Next(min, max);
}
private void Display(object sender, EventArgs e)
{
switch (randomNumber)
{
case 1: …Run Code Online (Sandbox Code Playgroud) 好的只是为了清酒知识,我尝试了下面的案例(假设A类和B类在同一个包中)
ClassA的
public class ClassA {
public static void main(String[] args) {
System.out.println("A");
}
}
Run Code Online (Sandbox Code Playgroud)
ClassB的
public class ClassB extends ClassA {
public static void main(String[] args) {
System.out.println("B");
}
}
Run Code Online (Sandbox Code Playgroud)
在ClassB它上面执行它将B在classB下面的变化之后产生现在的输出
ClassB的
public class ClassB extends ClassA {
//blank body
}
Run Code Online (Sandbox Code Playgroud)
如果我编译并运行terminal它给我的输出A完全令人惊讶,因为它应该给出,NoSuchMethodError因为没有主要的方法是他们如此善意地解释奇怪的行为?
注意:许多答案包含Override单词请使用,hiding因为我们无法覆盖java中的静态方法.
java ×4
.net ×1
background ×1
c ×1
c# ×1
c++ ×1
compilation ×1
entry-point ×1
foreground ×1
friend ×1
function ×1
overriding ×1
private ×1
public ×1
scala ×1
smalltalk ×1
static ×1
variables ×1