首先我们要了解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