福建住房和城乡建设网站,做花生的网站,用django怎么做网站,wordpress侧边栏导航目录 类的定义格式如何去自定义this的引用如何初始化对象构造方法的定义和使用 类的定义格式
class ClassName{ //属性(成员变量) //行为(成员方法) }
1变量与方法 1.成员变量:普通成员变量 静态成员变量 2.成员方法:普通成员方法 静态成员方法 其中的静态变量与方法,在后… 目录 类的定义格式如何去自定义this的引用如何初始化对象构造方法的定义和使用 类的定义格式
class ClassName{ //属性(成员变量) //行为(成员方法) }
1变量与方法 1.成员变量:普通成员变量 静态成员变量 2.成员方法:普通成员方法 静态成员方法 其中的静态变量与方法,在后面的封装里面讲述
注意点 1不建议一个Java文件里面创建多个类,建议是创建一个类放在一个Java文件里面 2main方法所有的类一般要使用public修饰 3public修饰的类必须和文件名相同 4不要轻易去修改public修饰的类的名称,如果要修改就用工具来(在idea里面,就是先选中名字然后右键,点击refactor,再点击rename就可以改名,但是这个是只针对java只有一个类的时候)
如何去自定义
class PetDog{//这里就是属性public String name;public String color;//这下面是方法,也叫行为public void barks(){System.out.println(name 旺旺~~~~);}public void wag(){System.out.println(name 摇尾巴~~~);}}
public class Test {public static void main(String[] args) {PetDog petDog new PetDog();petDog.name 小黄;petDog.color 黄色;System.out.println(petDog.name);petDog.barks();petDog.wag();}
}在这里面的话,我们在上面创建了一个类,我们去使用这个类的时候,我们是要去通过new实例化一个对象, 就是 PetDog petDog new PetDog();这个, 我们在实例化的时候不止可以实例化一个,可以实例化无数个对象 然后里面的petDog.name “小黄”;和 petDog.color “黄色”;,就是我们在给我们实例化的对象附一个值,取名为小黄,颜色为黄色, 在后面的petDog.barks();和petDog.wag();这两个里面,因为我们那前面的时候就给名字和颜色进行初始化了,所以我们直接引用这两个方法就可以了,里面的name已经被赋值为小黄了 最后的运行结果就是这样的 注意 1new关键字是用于创建一个对象的实例 2使用 . 来访问对象中的属性和方法 3同一个类可以创建多个实例
this的引用
public class Date {public int year;public int month;public int day;public void setDate(Date this, int y,int m,int d){this.year y;this.month m;this.day d;}public static void main(String[] args) {Date date new Date();date.setDate(1999,1,1);Date date1 new Date();date1.setDate(1899,1,1);}}this的特征: 1this的类型对应类 类型引用,即哪个对象调用就是哪个对象引用类型 2在成员方法中,this只能引用当前对象,不能再引用其他对象 3在一个成员方法中,可以用this来调用另一个成员方法
只有一个方法,如何知道给哪个对象赋值?? 答:通过Date this以及this.year y这几个来进行判断给谁赋值
如何初始化对象
1就地初始化 定义成员变量的时候,就直接初始化
2构造方法: 注意点: 1.无返回值 2.方法名必须和类名相同 3.在整个对象的生命周期内,只调用一次(只有在对象实例化的时候才会调用)
class Student{public String name;public int age;public Student(){this.name 张三;this.age 9;}
}像图中的public Student(){ }.就是一个构造方法,
实例化对象的关键两步? 1为对象分配内存 2调用合适的构造方法 注意这个合适!!! 因为我们在代码中,只写了成员变量,没有写任何一个构造方法的时候,java中会自动提供一个不带参数的构造方法,若是有存在构造方法,编译器就不会提供(总结就是救急不救穷);
作用: 对,对象中的成员进行初始化,并不负责开辟空间
构造方法的定义和使用
public Student(){this.name 张三;this.age 9;System.out.println(student().....);}public Student(String name,int age){this.name name;this.age age;System.out.println(Student(String,int).......);}上图这种,就存在两个构造方法 注意: 1构造方法可以有多个,且构成重载关系 2 当上面这两种情况都存在的时候,可以通过传参的方式来进行初始化
Student student new Student(悟空,19);或者如果使用idea的话,可以先右键,再Generate,然后constructor快捷生成构造方法
构造方法中,可以通过this来调用其他的构造方法来简化代码 例如
class Student{public String name;public int age;public Student(){this(张三,9);}public Student(String name,int age){this.name name;this.age age;}
}
public class Test {public static void main(String[] args) {Student student new Student();System.out.println(student.name);System.out.println(student.age);}
}可以像上面的代码一样,通过this来直接调用 但是1只能出现在构造方法中 2不能自己调用自己 3只能出现在当前构造方法的第一行,如果有其他东西就会报错