首先我们要了解JAVA是面向对象的,关注的是对象,把一件事物拆分成不同的对象,靠对象之间的交互完成。

1.面向对象
面向对象 注重的是对象,也就是在过程中所涉及的主体,

举一个例子:比如一个将大象放入冰箱的操作
面向过程:1.打开冰箱,2.放入大象,3.关冰箱门
面向对象:打开冰箱,储存,关闭都是对冰箱的操作,是冰箱的行为。
而冰箱本身就是一个对象,所以只要操作冰箱所具备的功能,都要定义在冰箱中。

2.类
就是一类对象的统称,对象就是类具体化的一个实例。
简单理解为类相当于一个模板,对象就是这个模板产生的样本,一个类可以产生无数的对象。
类在java中是一种引用类型,用class 来声明。
创建类基本语法:

//创建类
 class 类名{
 //成员属性
 //成员方法
 }


{ }中是类的主体,类中的属性称为成员属性,类中的方法称为成员方法(还有构造方法,这个后边会提到)。
代码示例:

class Person {
    public int age;//成员属性 实例变量
    public String name;
    public String sex;
    public void hello() {//成员方法
       System.out.println("你好!");  
   }
    public void byebye() {
       System.out.println("再见!");  
   }
}

类的实例化:
用类做类型来创建对象的过程,就是类的实例化。
类只是一个模型一样的东西,限定了类有哪些成员,但并没有分配实际的存储空间来储存它。
一个类可以实例化出多个对象,实例化出的对象占用实际的物理空间。
基本语法:
类名 对象名 = new 类名();
代码示例:

class Person {
    public int age;//成员属性 实例变量
    public String name;
    public String sex;
    public void hello() {//成员方法
       System.out.println("你好!");  
   }
    public void byebye() {
       System.out.println("再见!");   
   }
}
public class Main{
public static void main(String[] args) {
        Person person = new Person();//通过new实例化对象
        person.hello();//成员方法调用需要通过对象的引用调用
        person.byebye();
        //产生对象     实例化对象
        Person person2 = new Person();
        Person person3 = new Person();
 }
}

new关键字用于创建一个对象分配存储空间的过程,用.来访问类中的属性和方法。

构造方法:
在类中有一个特殊的方法叫做构造方法,在使用关键字new实例化对象的时候会被自动调用,用于对象的初始化。
new的执行过程:
1.为对象分配存储空间
2.调用构造方法完成对象的初始化
基本语法:

类名(){
 }


注意:
1.构造方法没有返回值
2.方法名称必须与类型名相同
3.可以有参数也可以没有参数,但是类中必须要有一个构造方法,如果没有定义构造方法,类中会自动生成一个无参的构造方法,如果定义了构造方法那么将不会再自动生成无参的构造方法
4.构造方法允许重载规则与普通方法一致
代码示例:

class Person { 
	 private String name;//实例成员变量
	 private int age; 
	 private String sex; 
	 //默认构造函数 构造对象
	 public Person() { 
	 this.name = "caocao"; 
	 this.age = 10; 
	 this.sex = "男"; 
 	} 
 //带有3个参数的构造函数
	 public Person(String name,int age,String sex) { 
		 this.name = name; 
		 this.age = age; 
		 this.sex = sex; 
	 } 
	 public void show(){ 
		 System.out.println("name: "+name+" age: "+age+" sex: "+sex); 
	 } 
} 
public class Main{ 
	 public static void main(String[] args) { 
		 Person p1 = new Person();//调用不带参数的构造函数 如果程序没有提供会调用不带参数的构造函数
		 p1.show(); 
		 Person p2 = new Person("zhangfei",80,"男");//调用带有3个参数的构造函数
		 p2.show(); 
	 } 
} 
// 执行结果
name: caocao age: 10 sex: 男
name: zhangfei age: 80 sex: 男

this关键字:
作用:1.在一个构造器中调用其他的构造器
2.在类的内部,代表当前对象的引用
比如说使用对象的属性和方法:
1.如果在类的外部
引用.属性 p.name
2.如果在类的内部
属性 name
this.属性 this.name