Java OOP第一至四章节

这篇博客详细介绍了Java面向对象编程的基础知识,包括对象和封装的概念,如类、对象、构造方法、封装的定义与好处,以及访问修饰符的应用。此外,还探讨了继承的原理,包括继承的使用、构造方法重写、抽象类与抽象方法,并解释了final修饰符的作用。最后,讲解了多态的定义、实现方式以及接口的基本知识,对比了Java接口与抽象类的区别。
摘要由CSDN通过智能技术生成

Java OOP第一至四章节

第一章 对象和封装

1.1理解面向对象

1.1.1为什么要使用面向对象

​ 面向对象就是采用"现实模拟"的方法设计和开发程序,面向对象技术利用"面向对象的思想"去描述"面向对象的世界",是客户和软件设计开发人员之间、软件设计开发人员内部交流更加顺畅,同时有代码重用性高,可靠性高等优点,大大提高了软件尤其是大型软件的设计和开发效率。

1.1.2面向过程和面向对象的区别

​ 面向过程:面向过程的核心是函数,已功能为中心,实现函数级别的代码重用。也就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向过程中没有继续和多态的特征。

​ 面向对象:面向对象的核心是封装了属性和方法(行为)的类,以数据为中心,实现类级别代码的重用。也就是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

1.1.3面向对象设计的过程

​ 面向对象设计的过程就是抽象的过程,分为以下三步:

​ 第一步:发现类

​ 第二步:发现类的属性

​ 第三步:发现类的方法

1.2使用面向对象

1.2.1创建类和对象
//创建狗狗类
public class Dog {
   
    public String name;//姓名
    public int health;//健康值
    public int love;//亲密度
    public String strain;//品种
	//输出信息
    public void print() {
   
        System.out.println("宠物的自白:\n我的名字叫"+this.name
                +"健康值是:"+this.health+",和主人的亲密度是"+this.love
                +",我是一只"+this.strain);
    }
}

//创建测试类
public class Test {
   
	public static void main(String[] args) {
   
        //创建狗狗对象赋值
		Dog dog =new Dog();
		dog.name="酷酷";
		dog.strain="拉布拉多犬";
         dog.love=100;
         dog.health=100;
		dog.print();//输出狗狗对象
    }
}

​ (1)Java中创建对象、调用属性及方法的语法和C#中是相同的。

​ 通过构造方法来创建对象,如:

Dog dog = new Dog();创建狗狗对象

​ 通过对象名.属性名的方式调用属性,如:

dog.name="酷酷";//给属性赋值

​ 通过对象名.方法名的方式调用方法,如:

dog.print();//调用输出方法

​ (2)类和对象是面向对象的两个核心概念,类是对某一类事物的描述是抽象的,对象是实际存在的,具体的事物个体。

1.2.2构造方法及其重载

​ (1)构造方法

​ 构造方法是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。构造方法有无参的构造方法和有参的构造方法。一个类可以定义多个不同的构造方法。

​ 构造方法的特点:

​ 1、方法名和类名相同

​ 2、没有返回值

​ 3、在创建一个类的新对象时,系统会自动的调用该类的构造方法完成对新对象的初始化。

​ (2)重载

​ 方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。

​ 方法重载的判断依据:

​ 1、必须在同一个类里

​ 2、方法名相同

​ 3、参数列表(方法参数的个数或参数类型)不同

​ 4、在使用this调用自身的其他构造方法时,只能作为第一条语句

注:在使用this调用自身的其他构造方法时,只能作为第一条语句

​ (3)构造方法和重载例子

public class Penguin {
   
	String name;
	int health;
	int love;
	String sex;
	/**
	*无参构造方法
  	*/
  public Penguin() {
   
  	name="楠楠";
    health=100;
  	love=20;
  	sex="Q妹";
  	System.out.println("执行构造方法");
  }
	/**
	 * 有参数的构造方法
	 */
	public PenguinSL8(String name,int health,int love,String sex) {
   
		this.name=name;
		this.health=health;
		this.love=love;
		this.sex=sex;
	}
public void print() {
   
	System.out.println("宠物的自白:\n我的名字叫"+this.name
			+"健康值是:"+this.health+",和主人的亲密度是"+this.love
			+",性别"+this.sex);
}
    /**
     * 测试构造方法
     */
public static void main(String[] args) {
   
	Penguin pgn =null;
    //测试无参构造方法
	pgn =new Penguin();
	pgn.print();
    //测试有参构造方法
    pgn =new PenguinSL8("美美",80,20,"Q仔");
	pgn.print();
}
1.2.3static修饰符

​ (1)static的定义

​ static可以用来修饰属性、方法和代码块。把static修饰的属性和方法成为类属性(类变量)和类方法,不用static修饰的属性和方法属于单个对象,通常称为实例属性(实例变量)和实例方法;例如main()方法。

​ 语法:

访问修饰符 static 数据返回类型 方法名(){
   }

​ 例如:

public class StaticTest {
   
	static int i;
	static int m = 30;
	int j;
	int k=25;
	static {
   
		i=10;
		System.out.println("i的初始值为"+i);
	}
	public StaticTest() {
   
		j=20;
		System.out.println("j的初始值为"+j);
	}
	public static void getNum() {
   
		System.out.println("得到i的值为"+i);
	}
	public static void main(String[] args) {
   
		StaticTest st =new StaticTest();
		System.out.println("i的值为:"+StaticTest.i);
		st.getNum();
		System.out.println("m的值为:"+st.m);
		System.out.println("k的值为:"+st.k);
	}
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值