java入口是什么意思 Java程序的入口是什么
大家好,如果您还对java入口是什么意思不太了解,没有关系,今天就由本站为大家分享java入口是什么意思的知识,包括Java程序的入口是什么的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
java项目的入口
public static void main()在类中占据一个什么样的地位?一个比较少见的例子
定义一个JAVA文件,文件名为Test
class person
{
private int age;
void shout()
{
System.out.println("my age is"+age);
}
public static void main(String []args)
{
person p1=new person();
person p2=new person();
p1.age=-30;
p1.shout();
p2.shout();
}
}
class a
{
int aa;
void show()
{
System.out.println("show us!");
}
}
可以通过编译,解析
javac Test.java
java person
输出:my age is-30
my age is 0
问题1:一般来说,我们通常都是定义一个启动类做为这个JAVA文件的入口,而这个类通常是权限定义为public,而里面的有一个函数作为整个程序的入口,这个函数被定义为public static void main(String []args),当类多于一个的时候,不是入口函数的类(person)的权限必须定义为public才可以运行的吗?
问题2:请问person类中的public static void main(String []args)算是person类中的成员函数吗?如果是的话p1.age=-30,p1直接在函数中被修改就解析的通,如果不是的话,那public static void main(String []args)和person类是怎样的关系呢?
问题3:本题JAVA源文件的文件名为Test,也就是和person类名不相同,一般我们定义的public类的类名和JAVA源文件的文件名是相同的,请问JAVA源文件是不是只是将那么多的类包含在其中而已?JAVA源文件的文件名和里面的类名并没有什么联系?就如上例,我们编译时,编译的是JAVA的源文件(javac Test.java),而解析时,则解析的是这个源文件里面的一个包含有public static void main(String []args)函数的类(java person)?
答: Java里的权限,其实是相对的.比如定义为 public,则为所有人都可以访问.
定义为 private则相对于其他外部的调用来说,是不可见的.但对于定义这个属性或方法
的类本身来说.没有任何影响.
因为编写一个类,总是要实现某些功能,类中定义的方法不可能仅仅有一个(极端的空类,只有一个隐含构造
函数的例外).但方法多了,就会产生问题.即,那个方法是整个类的入口呢?所以 Sun规定了,把这个入口
强制规定成 main.因为这个方法是在这个类实例化前就需要调用.所以要定义成 static.因为这个main
方法是留做给运行环境使用的.所以要定义成 public(外部运行环境不属于这个类本身,也不属于这个类所在的
包.)又因为这个main方法仅仅是调用这个类内部其他方法的一个入口,所以他不需要任何的返回值.因此就定义成 void.把以上各点都归纳起来,也就是现在的样子 public static void main(String[] args);
至于类本身是否定义成 public跟 main的修饰符,是两个意思.如果要访问一个main方法,首先要判断
这个类本身的修饰符是什么.就好比国内的学校,对我们(有权限的人)都是可以随便访问的.但一个外国人
却不可以.他首先要取得入境证明,才可以再继续深入访问这个学校.也就是类的修饰符优先于类内部方法的
修饰符.
这个main类属于这个类的一个成员方法.但在你举的例子里却错了. p1.age并没有调用 main方法.
而是调用了person的构造函数.main方法只有在这个类需要单独运行的时候才是必须的.如果他仅仅
是其他类的一个附属的类(或者说补充,扩展),则main方法不是必须的.也就是上面说的,main方法是给
运行环境用的.比如jvm.不是给其他类调用的.
在一个文件里,主类(也就是跟这个文件同名的类)不必要定义成public.这个要看具体的使用情况.
如果这个类有必要让其他任何地方的类来调用.则必须定义为public,反之,则没这个必要.如果缺省了
.则默认为包访问权限.
Java里允许在一个文件里写若干个类的实现.但必须有一个类的名字与这个文件同名.在一定意义上,这个类
也就是其他类的总领.解析的时候并不是看哪个类里有main就调用那个,而是看哪个类跟文件同名.
其实,虽然我们在写代码时,在一个文件里写了若干个类。但在编译后,jdk还是将各个类分离了开来.
这也就是为什么我们写一个包含若干类的文件,编译后会出现不止一个.class文件的原因.
在你的狸子里, java person调用的是 person.class这个文件,但在这个时间内. person.class这个文件
里只有 person这一个类.
另:我觉得你的类如果写完整了,应该是不能运行的.(可以通过编译,Jdk编译器不会去检查类名是否与文件名
相同,这个应该有程序员自己去避免出错).应该提示找不到类的错误.
java里程序入口和出口是什么意思
我说3个版本你看哪个你好理解点
从代码上来说程序的入口就是Main方法一个完整的程序必须要有Main方法虚拟机在执行你的程序其实就是在执行你Main方法里面的代码程序的出口稍微复杂一点其实也是Main方法 Main里面的代码执行完了和其开启的子线程死完了程序也就死了。
从代码上来说程序的入口就是Main方法一个完整的程序必须要有Main方法虚拟机在执行你的程序会在开启一个新进程我为他命名为进程A这个进程里会有一个初始线程不断的执行并且只执行Main方法里的代码不会执行其他线程的代码,当这个线程执行完Main方法后他就死了这个时候如果你没有在Main方法里开启其他线程或者其他线程死的更早那进程A就死了程序也结束了否则等到进程A里的所有线程都死了你的程序才结束
从软件上来说
程序要有一个用户进入其主体的门户比如登陆页面和一个用户结束程序方式比如用户关掉窗口或点击退出按钮
Java程序的入口是什么
一般的桌面程序,有源代码的话就找带main方法的吧,当然可能有些测试类也有main方法,如果是打包jar的,用winrar打开它,看其META-INF/menifest.mf文件里面Main-Class这个段后面写的就是主类,也就是程序入口了。
Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和
Java平台的总称。Java由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。
用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2010年Oracle公司收购Sun Microsystems。
技术优势
与传统程序不同,Sun公司在推出 Java之际就将其作为一种开放的技术。全球数以万计的 Java开发公司被要求所设计的 Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。
Sun公司对 Java编程语言的解释是:Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
Java平台是基于 Java语言的平台。这样的平台非常流行。因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。java的应用已十分广泛。
Java是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。
JAVA的用途:80%以上的高端企业级应用都使用JAVA平台(电信、银行等)。JAVA是成熟的产品,已经有10年的历史。
自从1995年Sun公司正式发布Java1.0版以来,在全球范围内引发了经久不衰的Java热潮,Java的版本也不断更新到v1.1,v1.2,v1.3,v1.4,其内容也有了巨大的改进和扩充,还出现了标准版、企业版、服务器版等满足不同需要的版本。另外还有迅速发展的JavaBean,其它的Java编译器和集成开发环境等第三方软件。
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!