201711671112《JAVA程序设计》第三周学习总结
教材学习内容总结
1、面对对象编程的三个特性:封装性、继承和多态。
2、类是java语言中最重要的数据类型,包括类声明和类体。类命名的编程风格:如果类名使用拉丁字母,那么首字母大写;类名最好容易识别、见名起意,由单词复合而成时,每个单词的首字母大写,ChinaMade。
3、变量的声明用来存储属性的值,方法可以对类中声明的变量进行操作。
4、声明变量部分所有变量被称为成员变量或域变量,成员变量在整个类内有效,编程风格:一行只声明一个变量
5、无static 实例方法,反之,类方法。局部变量只在方法内有效,而且与其声明的位置有关,方法的参数在整个方法内有效,方法内的局部变量从声明的位置之后开始有效,体现了封装性。
6、如果局部变量的名字与成员变量的名字相同,那么成员变量被隐藏,在整个方法内失效。如果使用被隐藏的成员变量,必须使用关键字this。成员变量有默认值,局部变量没有,所以必须保证局部变量有具体值。对成员变量的操作只能放在方法中,声明成员变量时可以赋予初值。
7、UML图用于描述一个系统的静态结构,如果类的名字是斜体,说明是抽象类, 变量名字:类型
8、当程序用类创建对象时需要使用构造方法,类构造方法的名字必须与它所在的类的名字完全相同;构造方法没有类型;可以在一个类中多个构造方法,但是不许参数不同:个数不同,或者参数个数相同但是参数列表中对应的某个参数类型不同(重载)
9、为声明对象分配变量
class XiyoujiRenwu{
float height,weight;
String head,ear;
void speak(String s) {
System.out.println(s);
}
}
public class Example4_1 {
public static void main(String[] args) {
XiyoujiRenwu zhubajie; //声明对象
zhubajie=new XiyoujiRenwu(); //为对象分配变量(使用new和默认的构造方法)
}
}
package Example4_2;
class Point{
int x,y;
Point(int a,int b){
x=a;
y=b;
}
}
public class Example4_2 {
public static void main(String[] args) {
Point p1,p2; //声明对象p1和p2
p1=new Point(10,10); //为p1分配变量
p2=new Point(23,35); //为p2分配变量
}
}
一个类通过使用new运算符可以创建多个不同的对象,这些对象的变量将被分配不同的内存空间。
10、体现封装
package Example4_3;
class XiyoujiRenwu{
float height,weight;
String head,ear;
void speak(String s) {
head="歪着头";
System.out.println(s);
}
}
public class Example4_3 {
public static void main(String[] args) {
XiyoujiRenwu zhubajie,sunwukong;// 声明对象
zhubajie=new XiyoujiRenwu();
sunwukong=new XiyoujiRenwu();
zhubajie.height=1.80f;
zhubajie.head="大头";
zhubajie.ear="一双大耳朵";
sunwukong.height=1.62f;
sunwukong.weight=1000f;
sunwukong.head="秀发飘飘";
System.out.println("zhubajie的身高:"+zhubajie.height);
System.out.println("zhubajie的头:"+zhubajie.head);
System.out.println("sunwukong的重量:"+sunwukong.height);
System.out.println("sunwukong的头:"+sunwukong.head);
zhubajie.speak("俺想娶媳妇");
System.out.println("zhubajie现在的头:"+zhubajie.head);
sunwukong.speak("老孙我重1000斤,我想骗八戒背我");
System.out.println("sunwukong现在的头:"+sunwukong.head);
}
}
11、假如程序中使用了空对象,程序在运行中会出现异常NullPointerException.
12、 一个类声明的两个对象如果具有相同的引用。二者就具有完全相同的变量
13、将对象p2的引用赋给了对象p1
package Example4_5;
public class Rect{
double width; //矩形的宽
double height; //矩形的高
double getArea() {
double area=width*height;
return area;
}
}
public class Lader{
double above; //梯形的上底
double bottom; //梯形的下底
double height;// 梯形的高
double getArea() {
return (above+bottom)*height/2;
}
}
public class Example4_5 {
public static void main(String[] args) {
Rect ractangle=new Rect();
ractangle.width=109.87;
ractangle.height=25.18;
double area=ractangle.getArea();
System.out.println("矩形的面积:"+area);
Lader lader=new Lader();
lader.above=10.798;
lader.bottom=156.65;
lader.height=18.12;
area=lader.getArea();
System.out.println("梯形的面积:"+area);
}
}
14、参数传值
package Example4_6;
class Computer{
int add(int x,int y) {
return x+y;
}
}
public class Example4_6 {
public static void main(String[] args) {
Computer com=new Computer();
int m=100;
int n=200;
int result=com.add(m, n); //将m,n的值传值给参数,x,y
System.out.println(result);
result=com.add(120+m,n*10+8);
System.out.println(result);
}
}
15、引用类型的参数传值
package Example4_7;
class Battery{
int electricityAmount;
Battery(int amount){
electricityAmount=amount;
}
}
class Radio{
void openRadio(Battery battery) {
battery.electricityAmount=battery.electricityAmount-10;
}
}
public class Example4_7 {
public static void main(String[] args) {
Battery nanfu=new Battery(100);
System.out.println("南孚电池的储存量:"+nanfu.electricityAmount);
Radio radio=new Radio();
System.out.println("收音机开始使用南孚电池:");
radio.openRadio(nanfu);
System.out.println("目前南孚电池的储存量:"+nanfu.electricityAmount);
}
}
代码调试过程中的问题
不熟悉代码原理和定义概念,不能很好的掌握
参考资料
《JAVA实用教材(第五版)》