[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类型的,调用的方法也相同,但是最后显示的结果是不一样的:前一个是“李四在学习”,后一个“张三学习要靠自己”,原因就在于子类继承和重写了父类的方法,但是方法体和参数不一样。
分享到:
相关推荐
第一周学习总结.pdf
国培第一周学习总结.doc
开学后的第一周学习总结.pdf
《Java程序设计》第一周学习总结.docx
信息安全系统设计基础第一周学习总结.docx
《信息安全系统设计基础》第一周学习总结1.docx
《Java程序设计》第1周学习总结.docx
《Java程序设计》第一周学习总结 (2).docx
《信息安全系统设计基础》第1周学习总结.docx
1. 一维数组坐标变换 2. 翻转链表 3. 有序数组或链表合并 4. 对称和类似剥洋葱型结构的问题应该想到用 stack 来解决
python学习总结第一周
第八周学习总结Leetcode 63 不同路径 IIDP 状态转移方程:
520_第七周学习总结1
第七周学习总结三种初级排序算法实现:def BubbleSort(self, arr):
520_学习总结_第二周1
主要内容是异常,包括了一个游戏项目
1. 一维 DP 2. 二维 DP 3. DP 的本质: 递归 + 递推 (至底向上规划)
3.状态转移方程:dp[i] = ‘(’ + dp[可能的括号对数]+’)’+dp[剩下的括号对数]注意,可能的括号对数+剩下的括号对数=i-1,假设”可能的括
这周有一个简单的项目实战,只是简单的去实现要求和功能,熟悉之前所学习的知识以及应用,还包括类和对象,方法和方法重载等相关内容。
第二步:Possible solutions-Compare (time/space)-optimal (加强)去想所有可能的解法 第三步:Coding(多写)