`
junzai
  • 浏览: 14448 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

第一周学习小结

阅读更多
                        [align=center][/align]第一周Java学习小结

1、 Java程序的编译和运行机制的理解

Java程序的编写完之后生成后缀名为.java的源文件,编译时生成后缀名为.class文件,它不像C语言最终生成可执行文件。运行是指计算机将我们编写的代码翻译成极其的二进制代码,执行并显示最终结果的过程。



2、 面向过程与面向对象的理解

面向过程指的是关注的是一个事件的过程,相当于谓语。即是指完成一件事的过程和步骤,如:f1->f2->f3-…,其最终结果已经确定,并且是唯一的。而面向对象关注的是对象,即相当于主语和宾语,强调动作的对象,其结果可能是不唯一的。如C语言是面向过程的 ,而C++语言是面向对象和面向过程的,Java语言是面向对象的。



3、 类与对象的关系分析
类指的是具有相同特征、行为的一群个体的集合,是一个抽象的概念,如:学生,老师,桌子,这些只是一个抽象的名词,实际上并不存在。而对象指的是一个具体的个体,如:张三,李四等等。



4、 如何定义类,如何创建对象,如何调用属性和方法

定义类:public class Student{}
创建对象:Student st=new Student();
调用对象的属性和方法,如:st.setName();st.study();




5、 构造方法与一般方法的区别

构造方法:如Student st=new Student();中的Student()就叫做Student类中的构造器方法。
任何一个类都默认包含一个无参构造器。如:
public void study(){}是一般方法
public study(){}是构造方法,也就是说,构造方法中不用写void,而一般方法都要写




6、 什么叫重载、重载的意义

重载是指一个方法只要它的参数个数或者类型不一样,就可以在同一个文件中写任意多次,调用方法时也必须带上参数。如:
public void study(){}//没有参数
public void study(int n){}//只有一个参数
public void study(int n,int m){}//两个同类型的参数
public void study(String s,int n){}//两个不同类型的参数
重载的意义:可以多次使用。



7、 为什么需要继承?如何继承?继承到什么?
继承可以减少代码量,可以继承与父类中相同的属性和方法
继承的写法
public class UNStudent extends Student{
}
这样子类就继承了和父类中相同的属性和方法
继承到的就是父类中的属性和方法



8、 自动转型与强制转型
自动转型:
         Student stu1=new UNStudent();
是将UNStudent类转换成Student类,这样的话只能调用Student类中的方法和属性。一个对象是调用父类还是子类的方法,取决于对象本身的类型。子类有自己特有的属性,所以最后显示的结果并不是父类中定义的方法,而是子类中重写了父类但是方法体不一样的结果。
强制转型:
         Student stu2 = new UNStudent();
        UNStudent stu3=(UNStudent)stu2;
原本stu2是Student 类型的,加上个强制转换(UNStudent)就可以将其转换成UNStudent类型的了(因为创建对象是其本质UNStudent类型的)。但是值得注意的是,有些变量时不能强制转换的,否则就会出现错误,如:
         Student stu=new Student();
        UNStudent stu3=(UNStudent)stu;
因为stu本质上并不是UNStudent类型的,所以运行时就会报错。



9、 方法的重写和重载
重写:子类重新写了和父类一样的方法和属性,就是方法体不一样,但是类的参数和其他都没有任何改变。
重载:一个类中,只要方法的参数个数或者类型不一样,可以在同一个文件中写好几次这个方法,如:
父类:public class Student{      
        public void study(){                  
          System.out.println(“abc”);     
}
}                                 
子类:public class UNStudent  extends Student{
        public void study(){
          System.out.println(“defghi”);
}
}

这样,子类中的方法就将父类中的方法覆盖掉了,而输出自己想要的东西。
重载:
           public void study(){}//没有参数
           public void study(int n){}//只有一个参数
           public void study(int n,int m){}//两个同类型的参数
           public void study(String s,int n){}//两个不同类型的参数
方法的重载有无数多种类型,以上都是由于重载生成的不同方法。




10、 对于重写的方法和子类特有的方法的调用
重写的方法和父类中已有的方法一样,只是可能调用的时候方法体不一样。而子类出来具有与父类相同的方法外,其自身可能还有不同于父类的属性和方法,下面仅以方法为例。
父类中有方法:
           public void study(){}
子类中也可以重写父类的方法:
           public void study(){}
也可以定义自己的方法:
           public void cet4(){}
还有其他更多的都可以定义。



11、 多态的理解
由于继承和重写机制,相同类型的对象调用相同的方法,得到的结果可能不一样,如:
Student stu = new Student();         
   stu.setName("李四");;         
   stu.study();

   public void study() {
   System.out.println(name + "在学习")
         }

Student stu2 = new UNStudent();     
   stu2.setName("张三");
   stu2.study();

   public void study(){
   System.out.println(name+"学习要靠自己");}

stu和stu2的对象类型都是Student类型的,调用的方法也相同,但是最后显示的结果是不一样的:前一个是“李四在学习”,后一个“张三学习要靠自己”,原因就在于子类继承和重写了父类的方法,但是方法体和参数不一样。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics