第一周学习小结

[size=medium] [align=center][/align]第一周Java学习小结[/size]

[color=red]1、 Java程序的编译和运行机制的理解[/color]

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


[color=red]2、 面向过程与面向对象的理解 [/color]

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


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


[color=red]4、 如何定义类,如何创建对象,如何调用属性和方法[/color]

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


[color=red]5、 构造方法与一般方法的区别[/color]

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


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


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


[color=red]8、 自动转型与强制转型[/color]
自动转型:
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类型的,所以运行时就会报错。


[color=red]9、 方法的重写和重载[/color]
重写:子类重新写了和父类一样的方法和属性,就是方法体不一样,但是类的参数和其他都没有任何改变。
重载:一个类中,只要方法的参数个数或者类型不一样,可以在同一个文件中写好几次这个方法,如:
父类: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){}//两个不同类型的参数
方法的重载有无数多种类型,以上都是由于重载生成的不同方法。




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


[color=red]11、 多态的理解[/color]
由于继承和重写机制,相同类型的对象调用相同的方法,得到的结果可能不一样,如:
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类型的,调用的方法也相同,但是最后显示的结果是不一样的:前一个是“李四在学习”,后一个“张三学习要靠自己”,原因就在于子类继承和重写了父类的方法,但是方法体和参数不一样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值