本文为记录自己调试Java的过程。Java初学者。每一个序号为一部分。
注意:以下代码并不是所有的都是对的。只是做一个调试记录!!!!
首先新建一个项目,点击new -> project,设置好项目名称为diyobj。
1.建立一个新的Java class,将这个类命名为Teacher类。
建立其他3个类,分别为notebook类和pen类和subject类。
一个老师的重要信息包括他所教的科目,所用的笔记本和笔。
一个类里面会包含有一个公共类和其他的类,公共类的类名需要和JAVA文件一致。
当在文件里设置多个类之后。IDEA会自动识别,并且会反映在文件的目录中。
代码如下:
public class Teacher {
}
class notebook{
}
class pen{
}
class subject{
}
/*一个老师的个人信息包括他教的科目,用的笔和笔记本*/
2.一开始建立了FamilyMember类,后来发现这个角度不好描述,所以想改名为Cat类,目前在查阅怎么修改定义好的类文件名。之后没有查阅,直接将类名删掉了。
开始运行,代码如下:
public class Cat {
String sex;
int age;
String name;
void cry(){
System.out.println("miaomiaomiaomiao~~~~~~~");}
Cat(){};
public static void main(String args[]){
kitty=new Cat();
System.out.println("kitty's name is"+kitty.name);
System.out.println("kitty's age is"+kitty.age);
System.out.println("kitty's sex is"+kitty.sex);
kitty.age=10;
kitty.name="Kitty";
kitty.sex="female";
kitty.study();
tom=new Cat();
tom.age=100;
tom.sex="male";
tom.name="Tom";
System.out.println("============================");
System.out.println(" tom's name is"+ tom.name);
System.out.println(" tom's age is"+ tom.age);
System.out.println(" tom's sex is"+ tom.sex);
tom.cry();
}
}
出现错误:
错误定位:
kitty=new Cat();
还有
tom=new Cat();
正确的语法是定义时对象名前面要加类型名。
改了之后的代码
public class Cat {
String sex;
int age;
String name;
void cry(){
System.out.println("miaomiaomiaomiao~~~~~~~");}
Cat(){};
public static void main(String args[]){
Cat kitty=new Cat();
System.out.println("kitty's name is"+kitty.name);
System.out.println("kitty's age is"+kitty.age);
System.out.println("kitty's sex is"+kitty.sex);
kitty.age=10;
kitty.name="Kitty";
kitty.sex="female";
kitty.study();
Cat tom=new Cat();
tom.age=100;
tom.sex="male";
tom.name="Tom";
System.out.println("============================");
System.out.println(" tom's name is"+ tom.name);
System.out.println(" tom's age is"+ tom.age);
System.out.println(" tom's sex is"+ tom.sex);
tom.cry();
}
}
运行之后出现的错误:
错误定位
kitty.study();
没有定义study方法,写错了,只有cry方法。
修改之后运行,成功。
运行结果
从运行结果中,看出打印的信息和字符串少了一个空格,并且有些赋值后的信息没有打印出来。所以还需要对程序的输出格式进行修改。
修改后的代码如下:
public class Cat {
String sex;
int age;
String name;
void cry(){
System.out.println("miaomiaomiaomiao~~~~~~~");}
Cat(){};
public static void main(String args[]){
Cat kitty=new Cat();
System.out.println("kitty's name is "+kitty.name);
System.out.println("kitty's age is "+kitty.age);
System.out.println("kitty's sex is "+kitty.sex);
kitty.age=10;
kitty.name="Kitty";
kitty.sex="female";
kitty.cry();
System.out.println("kitty's name is "+kitty.name);
System.out.println("kitty's age is "+kitty.age);
System.out.println("kitty's sex is "+kitty.sex);
kitty.cry();
Cat tom=new Cat();
tom.age=100;
tom.sex="male";
tom.name="Tom";
System.out.println("============================");
System.out.println(" tom's name is "+ tom.name);
System.out.println(" tom's age is "+ tom.age);
System.out.println(" tom's sex is "+ tom.sex);
tom.cry();
}
}
运行结果如下:
总结:
这个程序主要体现了构造器的作用,无参构造器会把对象的所有属性赋为默认值,用new关键字来调用构造器。
new+构造器并非创建对象,而是对对象初始化。
前面类名加对象名才是创建对象。
可以通过对象名.属性来对对象的属性来赋值。
【不同的对象可以调用同一个方法。】(这句话存疑)