欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java中的面向对象基础

程序员文章站 2022-03-10 18:44:14
...

java中的面向对象基础

1、对象

#一切客观存在的事物都是对象,万物皆对象。

#任何对象,一定具有自己的特征和行为。

java中的面向对象基础

2、类

(1)类的定义

java中的面向对象基础

(2)对象的创建

java中的面向对象基础

(3) 类与对象的关系

类:定义了对象应具有的特征和行为,类是对象的模板。
对象:拥有多个特征和行为的实体,对象是类的实例。

java中的面向对象基础

代码示例:

public class TestOOP {
    public static void main(String[] args) {
        // 1. 创建Dog类型的对象,并保存在dog变量当中
        Dog dog = new Dog();

        // 2.访问属性:为各个属性赋值
        dog.breed = "萨摩";
        dog.age = 3;
        dog.sex = "公";
        dog.furColor = "白色";

        // 3.访问属性:从各个属性中取值
        System.out.println(dog.breed + " " + dog.age + " " + dog.sex + " " + dog.furColor);

        // 4.调用对象的方法
        dog.eat();
        dog.sleep();
    }
}

class Dog {
    // 在现实中的一组相同或类似的对象中,提取共性的特征和行为,保存在程序中的模板里(类)
    // 属性-实例变量
    String breed; // 品种
    int age; // 年龄
    String sex; // 性别
    String furColor;// 毛色

    // 方法-实例方法eat()
    public void eat() {
        System.out.println("爱蹦...");
    }

	// 方法-实例方法sleep()
    public void sleep() {
        System.out.println("爱跳...");
    }

}

3、构造方法

构造方法:是类中的特殊方法,主要用于创建对象。

特点:

  • 名称与类名完全相同。
  • 没有返回值类型。
  • 创建对象时,触发构造方法的调用,不可通过句点手动调用。

构造方法又分为无参构造方法和有参构造方法:

无参构造方法:
默认存在,但是一旦添加了有参构造方法,便会覆盖无参构造方法,需要使用的时候,必须手动添加
格式:访问修饰符 类名(){ }

有参构造方法:
需要手动添加,可以存在1个或者多个参数的有参构造方法
格式:访问修饰符 类名(参数类型1 参数名1,参数类型2 参数名2,…){ }

在得知对象中的属性,直接通过有参构造方法创建对象,会比无参构造方法方便
有参构造方法 = 无参构造方法 + 一个或者多个set( )

无参构造方法:

public class Demo01 {
    String name;
    int age;
    String sex;
	//无参构造方法创不创建都没关系,因为它是默认存在的
    public Demo01(){
        
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
    
}
public class Demo02 {
    public static void main(String[] args) {
    	//创建对象的时候单独赋值
        Demo01 demo01 = new Demo01();
        demo01.setName("小明");
        demo01.setAge(18);
        demo01.setSex("男");
    }
}

有参构造方法:

public class Demo01 {
    String name;
    int age;
    String sex;
	
	//创建了有参构造方法就不用写setName、setAge、setSex这3个方法了
    public Demo01(String name, int age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
    
}
public class Demo02 {
	public static void main(String[] args) {
		//创建对象的时候直接赋值
	    Demo01 demo01 = new Demo01("小明",18,"男");
	}
}

4、this关键字

this关键字的两种用法:

(1)第一种用法:调用实例属性、实例方法。如:this.name、this.sayHi()。

public class Demo {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.sayHi();
    }
}
class Student{
    String name = "小明";
    public void sayHi() {
    	//当实例变量和局部变量重名时,优先访问局部变量;
    	//此时,如需访问实例变量,需要增加this.前缀;
    	//不存在重名时,则可省略this。
        String name = "小陈";
        System.out.println(name);
        System.out.println(this.name);
    }
}
//运行结果:
//	小陈
//	小明

(2)第二种用法:调用本类中的其他构造方法。如:this()、this(实参)。

class Student{
    String name;
    int age;
    String sex;

    public Student(String name,int age) {
        this.name = name;
        this.age = age;
    }
    public Student(String name,int age,String sex) {
    	//在构造方法中,调用本类的其他构造方法,即可复用构造方法中的逻辑代码;
    	//三参构造将接收到的实参直接传递给三参构造进行属性赋值。
        this(name,age);
        this.sex = sex;
    }
}
  • this():调用无参构造
  • this(实参):调用有参构造
  • 注:必须在构造方法的首行
相关标签: java基础 java