类和对象
类:就是一类对象的统称,自定义类型,相当于模板
对象:就是类的具体化的实例
创建一个类:
class Person{
//实例成员变量,依赖于对象,通过对象的引用来调用
public String name;
public int age;//字段->成员变量
//静态成员变量,依赖与类,通过来类名调用
public static String sex;
public void eat(){
System.out.println("吃饭!");
}//方法
public static void sleep(){
System.out.println("睡觉");
}
}
注意:静态的数据只有一份,存在于方法区。而非静态数据存在于堆上。
实例化一个对象,并调用实例成员变量,静态成员变量,实例成员方法和静态成员方法,注意,静态方法不能直接访问非静态成员或者非静态成员方法
Person person =new Person();e
System.out.println(person.age);
System.out.println(person.name);
System.out.println(Person.sex);
person.eat();
Person.sleep();
封装类
privite 修饰的字段或者方法只能在类内部访问。
class Person {
//private 修饰的成员变量
private String name;
//通过get/set方法来实现一个接口,使得可以被其他类使用
public Strping getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public class Main{
public static void main(String[] args) {
Person person =new Person();
person.setName("tzp");//根据类内提供的接口来修改name属性
System.out.println(person);
}
封装类以及get/set方法的使用原理基本如图所![
构造方法
构造方法是一种特殊的方法,在产生对象的时候调用,用于对象的初始化操作。
class Person{
private String name;
private int age;
public Person() {
this.name = name;
this.age = age;
}
}
语法规则:
1.构造方法的名称必须和类名相同。
2.构造方法没有返回值声名。
3.一个类中至少有一个构造方法。一般的,如果没有手动定义构造方法,则系统会自动产生一个无参构造方法。
代码块:
实例代码块/构造代码块:
{
System.out.println("实例代码块");
}
静态代码块:静态的内容不依赖对象,而且只能访问静态的内容。
static{
System.out.println("实例代码块");
}
重载:
- 方法名称相同
- 参数列表不同
- 返回值不做要求
(构造方法也可以重载)
代码块执行顺序:
静态代码块 (只初始化一次,且是最早被执行的)> 实例代码块 > 构造代码块