面向对象编程的本质就是:
- 以类的方式组织代码,以对象的的形式组织(封装)数据。
- static方法是与类一同加载的,非静态方法是类实例化后才存在的。
- 所以静态方法无法调用非静态方法,因为此时不存在。
类是一个模板,对象是一个具体实例。
类与对象的创建
package com.oop.demo02;
public class Application {
public static void main(String[] args) {
//类实例化后会返回一个自己的对象
//xiaoming对象是Student类的一个具体实例
Student xiaoming = new Student();//实例化学生类,创建对象xiaoming
Student xh = new Student();//实例化学生类,创建对象xh
xiaoming.name="小明";
xiaoming.age=20;
xiaoming.study();
xh.name="小红";
xh.age=21;
xh.study();
}
}
运行结果:
小明在学习!他的年龄为20
小红在学习!他的年龄为21
package com.oop.demo02;
public class Student {
//属性:字段
String name;
int age;
//方法
public void study(){
System.out.println(this.name+"在学习!他的年龄为"+this.age);//this指这个类
}
}
构造器
快捷键:alt+insert
构造器:
1.和类名相同
2.没有返回值
作用:
- 使用new关键字本质在调用构造方法
- 初始化对象的值
package com.oop.demo02;
public class Application {
public static void main(String[] args) {//类与对象的创建
Person person = new Person();//调用无参构造方法
System.out.println(person.name);
Person person1=new Person("hsms");//调用有参构造方法
System.out.println(person1.name);
}
}
运行结果:
幻世蛮殇
hsms
package com.oop.demo02;
public class Person {
String name;
public Person(){
this.name="幻世蛮殇";
}
public Person(String name){
this.name=name;
}
}
注意点:
1.定义有参构造之后,如果想使用无参构造,就一定要显示无参构造方法。
2.一个类即使什么也不写,也会有构造方法。
图片来自B站遇见狂神说的视频内容
小结
1.属性:字段FieLd 成员变量
默认初始化:
数字:0.0 char : u0000
booLean : false 引用: null
修饰符属性类型属性名=属性值!
2.对象的创建和使用
-
必须使用new关键字创造对象,构造器Person kuangshen = new Person()
-
对象的属性kuangshen. name
-
对象的方法kuangshen.sleep()
3.类:
静态的属性属性 动态的行为方法。