类的定义以及类方法的调用
类的定义:类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。
类和对象的关系
类:实体的抽象
对象:真正的实体
定义一个类:
给一个类名为Peroson,再给他添加数据为name,age,sex
class Peroson{
private String name;
private int age;
private String sex;
}
定义方法:
class Peroson{
private String name;
private int age;
private String sex;
public void eat(){
System.out.println("Peroson :eat!!");
}
public static void sleep(){//静态成员方法
System.out.println("Peroson sleep!!");
}
public void show(){
System.out.println("name: "+name+" age: "+age+" sex: "+sex);
}
}
对象的创建
对象的创建:
(1)为对象分配内存
(2)调用合适的构造函数(构造函数不止一个)
Peroson a = new Peroson();
对象方法调用
Peroson a = new Peroson();
a.eat();
a.sleep();
a.show();
结果为:
此时name、age、sex的值为null、0、null是因为没给对象写入数据,所以存储的都是数据的默认值
对象的初始化
1.提供一系列的get、set方法来初始化对象
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
this引用 :指向当前对象的内存并不是调用当期方法的对象
只需这样来调用就行
public static void main(String[] args) {
Peroson p1 = new Peroson();
p1.setName("caocao");
String name = p1.getName();
System.out.println("name:"+name);
}
2.方法块初始化
1.静态代码块初始化
public static int data;
static{
data = 10;
}
2.实例代码块初始化
{
name = "jiahanlin";
age = 20;
sex = "男";
System.out.println("实例代码块初始化");
}
3.通过构造方法
public Person() {
this.name = "jiahanlin";
this.age = 20;
this.sex = "男";
}
public Person(String name, int age, String sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
}
Person p1 = new Person();
Person p1 = new Person("zhangsan",18,"女");
对象的初始化顺序
class Person{
static{
System.out.println("静态代码块初始化");
}
{
System.out.println("实例代码块初始化");
}
public Person(){
System.out.println("构造函数初始化");
}
}
public class TestDemo4 {
public static void main(String[] args) {
Person a = new Person();
}
}
由此可见如果几个初始化方式同时存在时会先加载静态方法块然后是实例方法块最后才是构造方法。