1503-3-吴天明 总结《2016年-10月-02日》【连续 2 天总结】
关键词:java修饰符、循环结构、分支结构
内容
A. 概括 今天主要学习了java的修饰符、循环结构和分支结构,与C++有很多相似之处。
(a)java修饰符 80%
(b)循环结构 100%
(c)分支结构 100%
B.具体内容
1. 就修饰符而言,除C++类中修饰成员及修饰继承方式用的private、protected、public外,还有的static(修饰静态成员,用法与C++相同)、abstract(修饰抽象方法、抽象类)、final(与C++const类似)、Synchronized(控制对象只被一个进程访问)等;
2.循环结构方面,while(){…}、do{…}while()、for(;;){…}、continue(跳出当次循环)、break(跳出当前循环结构)与C++并无两样,只是多了一个增强型for循环而已。即for(数据类型 临时变量名:临时变量遍历范围){……};
3.分支结构:类型及用法与C++中完全相同,不想多说;
4.虽然java与C++有很多相似之处,但也有细微的差别,还是要自己编程序、自己实践,坚持写自己的代码,做自己的备注,也只有这样才能有自己的见解。
C.明日计划(需要量化的目标)
(a)Number类
(b)Character类
(c)String类
(d)Stringbuffer类
D.今日代码:
父类:
/* 用abstract修饰符申明抽象类(不可被实例化只能用作父类)
* 如果一个类包含抽象函数则一定要声明为抽象类,否则编译错误
*/
public abstract class Animals {
String firstname;
private String nickname;
//私有访问修饰符private
int months;
public Animals(String str1,String str2,int months){
firstname=str1;
setnicn(str2);
this.months=months;
}
//只在当前类中允许使用,所以设为private以达到保护数据的目的
private void setnicn(String str){
nickname=str;
}
public String getnicn(){
return nickname;
}
/*共有访问修饰符public
* 声明为私有访问类型的变量只能通过类中公共的getter方法被外部类访问
*/
public abstract void show();
//声明show()为抽象方法,且java中抽象方法不允许在父类中声明时给出定义
}
子类:
public class Dog extends Animals {
static int number;
//用static关键字申明静态数据成员,与C++类似
int age;
public Dog(String str1,String str2,int months){
super(str1,str2,months);
//用super调用直接父类的构造函数
dogAge();
number++;
//静态数据成员为该类所有对象共享,后置自增运算符“++”
}
/*
* 利用switch分支语句实现对狗龄的简单计算
*/
private void dogAge(){
switch(months){
case 1:age=1;break;
case 2:age=3;break;
case 3:age=5;break;
case 6:age=9;break;
case 8:age=11;break;
case 9:age=13;break;
case 12:age=18;break;
case 18:age=20;break;
case 24:age=23;break;
case 36:age=28;break;
case 48:age=32;break;
case 60:age=36;break;
case 72:age=40;//无break依次向下执行,与C++相同
case 84:age=45;
case 96:age=50;
case 108:age=55;
default:age=0;//default相当于else,即其他所有情况
}
}
public void show(){
System.out.println("昵称:"+getnicn());
//if……else……分支结构
if(age>0) System.out.println("狗龄:"+age);
else System.out.println("这个不好算,你自己算咯!");
}
public static void main(String[] args) {
Dog [] dogs=new Dog[4];
//创建Dog类的数组dogs[]并逐个初始化
dogs[0]=new Dog("Bluce","Gentalman",12);
dogs[1]=new Dog("Susee","Barbie",6);
dogs[2]=new Dog("Johnson","Snowball",72);
dogs[3]=new Dog("Roberts","Slacker",49);
boolean result;//boolean即C++的bool型数据
/*
* 增强型for循环i逐个遍历dogs[]数组
*/
for(Dog i:dogs){
result=i instanceof Dog;
//instanceof用于操作对象实例,检查该对象是否是为指定类型
if(result) {
System.out.println(i.firstname+"is a dog!");
}else{
System.out.println(i.firstname+"isn't a dog!");
}
i.show();
}
System.out.println("\n共有"+number+"只狗!!!");
}
}
运行结果:
Bluceis a dog!
昵称:Gentalman
狗龄:18
Suseeis a dog!
昵称:Barbie
狗龄:9
Johnsonis a dog!
昵称:Snowball
这个不好算,你自己算咯!
Robertsis a dog!
昵称:Slacker
这个不好算,你自己算咯!
共有4只狗!!!