“封装”,“继承”,“多态”,面向对象最重要的三大特性。
类和对象:类就是一类对象的统称。对象就是这一类具体化的一个实例。
举个例子:
建房子时候需要的图纸可以造出很多个一样的房子。类就是那张图纸,而房子就是那个对象,所以房子就是一个实体。一张图纸可以实例化无数个对象。
所以,类相当于一个模板,对象是由模板产生的样本。一个类,可以产生无数的对象。
基本语法:
// 创建类
class <class_name>{
field;//成员属性
method;//成员方法
}
// 实例化对象
<class_name> <对象名> = new <class_name>();
//例子
class person {
public String name; //成员属性
public int age; //成员属性
//成员方法
public void eat() {
System.out.println("吃饭!");
}
}
//实例化对象
person per1 = new person();//简写
类的实例化:用类的类型创建对象的过程。
1.new 关键字用于创建一个对象的实例.
new 执行过程:
为对象分配内存空间
调用对象的构造方法
2.使用 . 来访问对象中的属性和方法.
3.同一个类可以创建对个实例.
类的成员
字段:用于描述一个类中包含哪些数据.
使用 . 访问对象的字段.
"访问" 既包含读, 也包含写.
对于一个对象的字段如果没有显式设置初始值, 那么会被设置一个默认的初值
方法:用于描述一个对象的行为.
getter和setter方法 :
class Person {
private String name;//实例成员变量
private int age;
public void setName(String name){
this.name = name;//this引用,表示调用该方法的对象
}
public String getName(){
return name;
}
public void show(){
System.out.println("name: "+name+" age: "+age);
}
}
public static void main(String[] args) {
Person person = new Person();
person.setName("caocao");
String name = person.getName();
System.out.println(name);
person.show();
}
// 运行结果
caocao name: caocao
age: 0
构造方法 (construction method):构造方法能够支持重载,一个类可能存在多个构造方法,多个构造方法之间可以互相调用。并且一个类中一定至少存在一个构造方法(如果没有明确定义,系统自动生成一个无参构造)
static 关键字:
1.修饰一个成员变量/属性
和类相关,和对象无关。(无论这个类存在多少个对象,静态成员变量只存在一份)
2.修饰一个方法
和类相关,和具体对象不相关。
静态方法中不能使用this。
一个方法或者属性要不要加static,具体问题具体分析。
3.修饰一个代码块
a)静态代码块会最先执行
b)不管new多少个对象,静态代码块只执行一次。
4.修饰一个类
封装(private 关键字)
public修饰的属性或方法,既能在类内使用,也能在类外使用(既能给实现者使用,也能给调用者使用)。
private修饰的属性或方法,通常情况下,只能在类内部使用,不能在类外部使用。
在编写程序的过程中,当我们把属性加上private关键字修饰时,此时在类的外部无法直接使用,但是可以在类的外部调用类的public的方法,然后让public方法内部来使用这个private变量。