1. 一个简单的类
认识类
成员变量 类方法
public class Person {
//类的成员变量
int age;
String name;
double height;
double weight;
public void eat(){
System.out.println("吃饭");
}
public void sleep(){
System.out.println("睡觉");
}
public String introduce(){
return "名字:"+name+ "年龄:"+age+"身高:"+height+"体重"+weight
}
}
实例化对象 调用对象的方法
public class Test {
public static void main(String[] args) {
//第一次加载类的时候,会进行类的加载,初始化创建对象的时候,对象的属性没有给赋值,有默认的初始化的值。
Person zs = new Person();
zs.name = "张珊";
zs.age = 19;
zs.height = 188.8;
zs.weight = 75;
//再次创建对象 不会再加载类
Person ls = new Person();
ls.name = "李四";
ls.age = 20;
ls.weight = 80;
ls.height = 188.9;
System.out.println(zs.name);
System.out.println(ls.name);
zs.sleep();
ls.eat();
System.out.println(zs.introduce());
}
}
2. 构造器
无参构造器 有参构造器 什么是this
public class Person {
String name;
int age;
double height;
public Person(){
}
public Person(String name, int age, double height){
//当形式参数与属性名 重名的时候会出现就进原则
//在对象的属性赋值的时候加上this
this.name = name;
this.age = age;
this.height = height;
}
public Person(String a, int b){
name = a;
age = b;
}
public void eat(){
System.out.println("吃饭");
}
}
new一个对象的 过程 以及构造器的注意点
public class Test {
public static void main(String[] args) {
/*
1. new 关键字实际上是在调用一个方法 这个方法叫做构造方法(构造器)
2. 系统会默认分一个构造方法
3. 可以自己显示的编写构造方法
构造方法与普通方法的区别
1. 没有返回值的类型
2. 不能有return语句
3. 名字必须与类的名字一样
构造器的作用:
不是为了创建对象
调用构造器之前对象就已经创建并且属性有初始值
构造器的本质是给对象的属性进行赋值操作
注意点:
1. 一般不会在空构造器里面进行初始化操作,否则所有的对象的属性就一样
2. 需要保证每个类空构造器的存在, 逻辑可以什么都不写,
*/
Person p = new Person();
System.out.println(p.age);
System.out.println(p.name);
System.out.println(p.height);
Person p2 = new Person("张三", 18, 188.9);
System.out.println(p2.age);
System.out.println(p2.name);
System.out.println(p2.height);
}
}
1.一般要保证空构造器的存在,且空构造器不进行属性的赋值操作
2. 一般要进行构造器的重载,在重载构造器中进行属性的赋值操作;
3. 重载构造器之后,如果空构造器忘记写,系统就再也不会分默认的空构造器,new Persion()则会报错
4. 当形式参数与类的属性重名,属性的赋值前加上this来修饰
public class Test2 {
public static void main(String[] args) {
Person p = new Person();
p.age = 19;
p.name = "lili";
p.height = 188.8;
Person p2 = new Person("lili", 19, 180.1);
System.out.println(p2.age);
System.out.println(p2.height);
System.out.println(p2.name);
}
}