类和对象

类和对象

1.面向对象的编程思想

2.理解类和对象的关系

3.掌握类和对象的创建方式

1.面向对象的编程思想(oop)

一、生活中的类:**

  • 人类
  • 植物类
  • 哺乳类
  • 爬行类
  • 两栖类

二、

  • 面向对象是一种开发方式也是一种编程思想。

  • java语言就是面向对象的编程语言。(Python、Kotlin、C++)

(1)面向过程(pop):面向函数编程

  • 它就是将实现一个功能的每一个过程进行聚合的方式。;例如把大象装进冰箱有三步。

    **面向对象:**职责划分(项目规模逐渐庞大的必然结果)每一个职责,每一个专业人员就是面向对象概念中的对象。

    例如:

    为了实现键盘录入功能,我们要创建Scanner对象

(2)面向对象思想有三个特性:

  • 封装
    • 今天我们学习的封装不是完整的封装。(发现一个对象,找到它的属性和行为的过程就是封装,封装成一个类)
  • 继承
  • 多态
  • 抽象

2.理解类和对象的关系

万物皆对象 : 我们生活的世界所能描述的一个实体都可以算作对象。

我们在描述这些对象时,会从他们的属性和行为去描述,同样对于类似的对象,如果他们的属性和行为接近则我们会进行分类。

类和对象的关系:

  • 类是一个抽象的概念
  • 类是从一组具有相似特征的对象中发现抽取而出的。
  • 对象是类的一个个体/实例。

3.掌握类和对象的创建方式

java是面向对象的编程语言,在java中首先以类作为基本单位。然后可以基于类去创建很多独立的对象。

面试题:请问java是一个完全的面向对象的编程语言吗?

不是,因为java中有基本数据类型。如:int、byte、…

3.1类的基本语法

访问修饰符 class 类名 { // 类名:大驼峰命名法 }(public访问修饰符的类名必须和文件名相同)

// 一组属性

// 一组行为
public class Student {
	
	// 一组属性
	String name; // 姓名
	int age; // 年龄
	String classId; // 年级编号
	String major; // 专业
	char gender; // 性别
	
	// 一组行为(方法)
	// 学习
	public void study() {
		System.out.println("学学学!");
	}}

3.2对象的定义

类名 对象名 = new类名();

对象名.属性名 = xxx;// 属性的赋值

对象名.方法名();// 执行对应的方法

需求:创建一个学生对象。

public class Demo1 {

	public static void main(String[] args) {
		// 创建对象
		Student fei = new Student();
		// 属性赋值
		fei.name = "李小狼";
		fei.age = 17;
		// 方法调用
		fei.study();
		System.out.println("------------------");

4.回顾类中方法的使用

方法补充

1.方法的参数

基本数据类型:作为方法参数传递时,传递过去之后的变量和之前的变量没有关系。

引用数据类型:作为方法参数传递时,传递的是地址值,所以传递过去之后的变量和之前的变量

例子:


public class Test {

	public static void main(String[] args) {
		// 对象变量
		Student student = new Student();
		student.name = "小明";
		student.age = 12;
		// 局部变量
		int num = 10;
		
		Test test = new Test();
		test.method1(num);
		test.method2(student);
		
		System.out.println(num); // 10
		System.out.println(student.age); // 13
	}

	// 方法1
	public void method1(int num) {
		num ++;
	}
	
	// 方法2
	public void method2(Student stu) {
		stu.age ++;
	}
		
}

2.类的构造方法

构造方法:创建、构建,类的对象和创建的方法。当对象创建时都会被执行!

构造方法最重要的意义就是Java给我们提供了能够在对象的创建(生命周期)过程中添加代码的能力。

  • 每一个类默认情况下JVM都会分配一个无参构造。
  • 构造方法没有返回值类型,方法名和类名完全相同。
  • 构造方法分为带参方法和无参方法
  • **注意:**只要创建任意一个构造方法,那么JVM就不再给你分配无参构造了。所以无论自己是否编写构造方法,都去手动编写一个默认的无参构造。(在以后代码书写时有可能会因为没有写无参构造而报错)
// 无参构造方法  
访问修饰符 类名(){ 
    
}
// 带参方法可以极大的简化对象的创建和初始化赋值过程
访问修饰符  类名(形参列表){
    // 利用形参给成员变量进行赋值
}

3掌握this关键字

  • this 代表着当前类中的对象谁在调用谁就是对象

  • this作为一个对象·,可以去调用属性,也可以调用方法

  • 但是如果要调用自身的构造方法,那么需要注意的是调用必须是在有效代码(不包含注释的第一行)的第一行。这是因为某个构造方法没有执行完毕,那么属性是不存在的,对象·也是不存在的。

// 方法内的变量:局部变量
public Dog(String name,int age) {
    // 当局部变量名称和成员变量名称相同时,会采用就近原则
    //		System.out.println(name);
    this();//要想调用无参构造应放在第一行,这是因为只有构造完毕对象才可以初始化。
    this.name = name;
    this.age = age;
}
public Dog(){
    System.out.println("这是一个狗类")
}

4.掌握成员变量和局部变量的区别

成员变量(对象变量又叫实例变量):类中属性

局部变量:方法内变量local

  • 定义的位置
    • 成员变量定义在类中方法外
    • 局部变量定义在类中方法内
  • 作用域(生效)的范围
    • 成员变量可以被类中的方法所共用
    • 局部变量只能在定义的方法内使用
    • 当局部变量和成员变量同名时,会就近采用局部变量。
  • 生命周期(生老病死)
    • 成员变量(实例变量) 它是随着对象的创建而产生,随着对象的销毁而销毁。
    • 局部变量 它是随着方法的压栈而产生,随着方法的弹栈而销毁。
  • 初始值
    • 成员变量有初始值
    • 局部变量没有初始值,如果不赋值则不能使用

5.掌握方法的重载

方法重载:发生在一个类中的,方法名相同,参数列表不同的情况(包括个数、顺序、类型)与访问修饰符和返回值类型无关。同一个方法只要参数列表不同,方法名不变即实现了方法的重载·。

方法重载的意义在于我们要定义相同功能的手法,不需要再话费大量时间去定义n中方法名,而且未来调用体验更佳。
问题:
方法重载为什么不能以返回值类型作为区分?

public int test1(){

}

public void test1(){

}
// ----------方法调用----------
int a = test1();
test1();

// --------------方法调用--------------
test1();
test1();
无法区别
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值