1.public class example{
2. private int Year;
3. private boolean isLeepYear(){
4. return(Year%4==0&&Year%100!=0)||(Year%400==0);
5. }
6. public static void main(String args[]){
7. example Date=new example();
8. Date.Year=2005;
9. if (Date.isLeepYear()){
10. System.out.println(Date.Year+"闰年");
11. }else{
12. System.out.println(Date.Year+"不是闰年");
13. }
14. }
15.}问题:1、程序中的第7行,example Date=new example();不明白为什么这样实例化,既然example类在main之外,怎么可以在main里使用example呢?2、第9行,private既然是私有的其他类不能访问,那在main里怎么可以访问isLeepYear呢3、第6行,既然程序是从main开始执行的,为什么main外面要加个example类呢?可能问题比较可笑,但谢谢大家!!!
2. private int Year;
3. private boolean isLeepYear(){
4. return(Year%4==0&&Year%100!=0)||(Year%400==0);
5. }
6. public static void main(String args[]){
7. example Date=new example();
8. Date.Year=2005;
9. if (Date.isLeepYear()){
10. System.out.println(Date.Year+"闰年");
11. }else{
12. System.out.println(Date.Year+"不是闰年");
13. }
14. }
15.}问题:1、程序中的第7行,example Date=new example();不明白为什么这样实例化,既然example类在main之外,怎么可以在main里使用example呢?2、第9行,private既然是私有的其他类不能访问,那在main里怎么可以访问isLeepYear呢3、第6行,既然程序是从main开始执行的,为什么main外面要加个example类呢?可能问题比较可笑,但谢谢大家!!!
2、第9行,private既然是私有的其他类不能访问,那在main里怎么可以访问isLeepYear呢
私有是指对于其他的类来说,而main是主函数 和私有没有关系3、第6行,既然程序是从main开始执行的,为什么main外面要加个example类呢?
建议楼主好好再看看书
答:楼主创建了一个名为example的类,main方法是隶属于这个类的,example Date=new example();中 example Date 是创建example的一个名为Date的对象变量,而new example()是新创建一个example对象,总体这句example Date=new example();的意思就是把这个变量指向这个对象。2、第9行,private既然是私有的其他类不能访问,那在main里怎么可以访问isLeepYear呢答: private 的含义是只有类本身可以访问,main是属于 example类的方法, 当然可以访问本身的私有变量了,楼主要明白main是这个类的主方法,不是其他类。
3、第6行,既然程序是从main开始执行的,为什么main外面要加个example类呢?
答:这个问题不知道楼主的意思,大概明白了第二个问题的回答,就应该明白了,main是个方法,当然要在一个包含它的类里了。不知道我的回答,楼主是否明白,共勉。
2.private int Year;
3.private boolean isLeepYear(){
4.return(Year%4==0&&Year%100!=0)||(Year%400==0);
5.}
6.public static void main(String args[]){
7.exampleDate=new example();
8.Date.Year=2005;
9.if (Date.isLeepYear()){
10.System.out.println(Date.Year+"闰年");
11.}else{
12. System.out.println(Date.Year+"不是闰年");
13.}
14.}
15.}
1、程序中的第7行,example Date=new example();不明白为什么这样实例化,既然example类在main之外,怎么可以在main里使用example呢?
答:对象实例化就是用这种语句.zuichubaise() 的解释非常清楚!但是楼主的疑问应该是:怎么可以在example类内实例化本类呢.不知道对不对?答案有两部分:第一,example类内可以实例化本类,第二,example类内实例化本类和类内实例化其他类是本质是一样的.楼主的第二个疑问应该是main()怎么可以访问example类对象?答案也是很简单的,对象可以在任何类的方法被访问,包括其他类.当然楼主的8.Date.Year=2005;比较特别,只能在类内方法访问,因为Year是private的.又因为main()是一个类内的方法,所以可以8.Date.Year=2005;2、第9行,private既然是私有的其他类不能访问,那在main里怎么可以访问isLeepYear呢
答案:呵呵,这个语句性质和8.Date.Year=2005;是一样的,答案应该也是一样的.就是main()是类内的方法.3、第6行,既然程序是从main开始执行的,为什么main外面要加个example类呢?
答案:java的所有的方法都封装在类中,main()方法也不例外.
看起来楼主对于example类内实例化本类很不习惯.总是觉得越级了.其实这种担心是没有必要的.因为JVM先装载main()所在的类,然后再执行main()内的代码.所以在7.exampleDate=new example();之前,已经有了一个对象的"模子",执行到这一句,就直接实例化.这个过程和实例化其他的类本质上是一样的.
偶也是新手,不知道说得对不对
这句话应该是有语病的
public class Example{
private static int Year;
private static boolean isLeepYear(){
return(Year%4==0&&Year%100!=0)||(Year%400==0);
}
public static void main(String args[]){
Year=2005;
if (isLeepYear()){
System.out.println( Year+"闰年");
}
else{
System.out.println( Year+"不是闰年");
}
}
}
不知道楼主能不能理解
私有我觉得是类里面的私有成员不能不外部实体调用,只能被类对象访问
main方法和构造方法哪一个先被调用呢?
2.data是本类的一个实例对象,Year自然就是他的一个属性,所以更改自己的属性是可以的
3.main函数是application中的主函数,一个完整的java程序中当然要有类,总之LZ把第一个问题搞懂了就懂了第三个问题了.
只是自己的一些解释,有不好的地方还请大虾指教~~`
Java规定:
1、任何函数(方法)、变量、常量都必须置于类中,只有抽象概念“包/Package”是在类之外的,类包含在包中;
2、类中的成员可以立即引用类本身;
3、Java应用程序以一个类的静态方法main为入口,它类似于C/C++中的main函数,除了它是类中的一个方法,它的格式必须为: public static void main( String []args ); 包含main方法的类必须是public且非抽象的;
4、类中的任何代码都可以访问类中的任何元素,包括私有的。另外,子类可以访问父类中保护成员,同一个包中的类中的代码可以访问没有标识为private、protected、public的成员;任何代码都可以访问标为public的成员。其它的,看看Java教材。
{
private int Year;
private boolean isLeepYear()
{
return(Year%4==0&&Year%100!=0)||(Year%400==0);
}
public static void main(String args[])
{
example Date=new example();
Date.Year=2005;
if (Date.isLeepYear())
{
System.out.println(Date.Year+"闰年");
}
else
{
System.out.println(Date.Year+"不是闰年");
}
}
}这是完整的结构,楼主看看清楚啊
第2,3条:main也属于EXAMPLE类的方法,当然可以在方法内调用private方法了,
2.同样,因为main()是类example的一个方法,所以,私有变量可以被访问啊!
3.main()是整个程序的入口,剩下的吗,可能看书会比较明白
答:作程序,一定在大脑中有一个内存的概念.
首先,程序是由main开始的,在内存中把main放进堆栈里面,而对象是在堆里面的,main不能去调用堆里面的东西,就想C的指针一样,没有东西指向它,所以,要在main里面去new 一个对象,用这个对象去指向这个堆里面的类.
我不知道我这样说你是否回理解.
2,第9行,private既然是私有的其他类不能访问,那在main里怎么可以访问isLeepYear呢?
答:对类的属性的私有,公共,受保护只是相对与其他的类而言的,main是一个静态的方法,是主函数,所以是可以调用的.
3,第6行,既然程序是从main开始执行的,为什么main外面要加个example类呢?
答:这个题的答案和1有些相似,就是你要对类和属性在内存的什么位置放,怎样调用,有一个比较真确的理解.还有,在JAVA这样的面向对象语言中,类无处无在.
上面是我的一些拙见,尽管拿砖来拍,哈哈.
建议楼主还是好好看书,把面向对象好好理解下,重要的是,在大脑中要有一个内存的概念,这样,你无论是做C还是C++,对指针这样的问题就不会很难理解了.