面向对象-对象、类、方法

0 前言

       面向对象编程是一种编程范式,它把现实世界中的事物抽象为对象,对象具有属性和方法,属性表示对象的特征,方法表示对象的行为。对象之间可以通过消息进行交互。面向对象编程的优点是可以提高代码的复用性、可维护性和可扩展性。在本文中,我们将介绍面向对象编程的三个基本概念:对象、类和方法。我们将学习如何定义和创建类,如何通过类实例化对象,如何给对象添加属性和方法,以及如何调用对象的方法。

1 对象

1.1 万物皆对象

对象:看得见摸得着的物件
世界是由多个看得见摸得着的物件(对象)组成

1.2 身边的对象

身边看得见摸得着的物件都称之为对象
对象之间存在区别,是因为对象之间有着不同的静态的特征和动态的行为

1.3 对象的特征——属性

每个对象都有着各自的静态的特征,在计算机中称之为属性
每个属性都由两部分组成:属性名和属性值

1.4 对象的特征——方法

每个对象都有着各自的动态的行为,在计算机中称之为方法
每个方法都由两部分组成:方法名和方法体

1.5 对象实例

在这里插入图片描述

2 类

2.1 类的定义

1)多个对象之间的共同的特征(静态的属性和动态的方法)
2)类就是多个对象之间的共性

2.2 类和对象的关系

类是对象的抽象(模糊),对象是类的实例(具体)
在这里插入图片描述

3 创建类

/**
*①定义类
*②定义类的属性
*③定义类的方法
*/
public class User{ //public共有的修饰符 class类的关键字 User类的名称
	//静态的属性
	String name;//属性类型:属性名称;
	//动态的方法
	public void show(){//show代表方法名 void代表返回值的类型 ()代表方法的特殊标识
		System.out.println(name);//方法体
	}
}

4 创建对象

public static void main(String[] args){
	//创建对象
	User user = new User();
	//为对象的属性赋值
	user.name = "张三";
	//调用对象的方法
	user.show();
}

5 类的方法

5.1 语法结构

访问修饰符 返回类型 方法名(){
	//方法的主体
}

5.2 方法的返回值

void 无返回值
基本数据类型 返回符合基本数据类型的值

5.3 方法的调用

1)在本类中调用方法方式
可以通过多个方法相互之间调用
在main方法可以调用该方法
2)在多类之间调用方法方式
main函数创建对象并调用

6 成员/局部变量

6.1 变量的作用域

变量之间存在作用域,作用域不一样,访问的权限就不一样
例如for循环中定义的变量不可被外部使用,而外部定义的变量可以被for循环使用

6.2 成员变量和局部变量

成员变量:在类中,方法外部定义的变量
局部变量:在方法内部定义的变量

6.3 成员变量和局部变量的区别

作用域不同
局部变量的作用域仅限定义它的方法
成员变量的作用域在整个类内部都是可见的
初始值不同
Java会给成员变量一个初始值
Java不会给局部变量赋予初始值
注:
在同一个方法中,不允许有同名局部变量
在不同的方法中,允许有同名局部变量
在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级

7 带参数的方法

7.1 为什么要用带参数的方法

不同的方法结果是不一样的,为什么不一样,是由于参数的不一样导致结果不一样

7.2 定义带参数的方法

public class ZhaZhiJi {
    //String fruit 形式参数(形参)
    //形式参数的组成部分:参数的类型 变量
    public void doIt(String fruit){
        System.out.println(fruit+"汁");
    }

    public static void main(String[] args) {
        ZhaZhiJi zhaZhiJi = new ZhaZhiJi();
        //“苹果” 实际传递的值(实参)
        zhaZhiJi.doIt("苹果");
    }
}

7.3 数组作为参数

public class Student {
	//求平均值
    public double calAvg(int[] scores){
        double sum = 0;
        double avg;
        for(int i = 0;i<scores.length;i++){
            sum += scores[i];
        }
        avg = sum/scores.length;
        return avg;
    }
    //求最大值
    public int calMax(int[] scores){
        int max = scores[0];
        for(int i = 1;i<scores.length;i++){
            if(scores[i]>max){
                max = scores[i];
            }
        }
        return max;
    }

    public static void main(String[] args) {
        int[] scores = new int[]{213,324,64,865,324};
        Student student = new Student();
        System.out.println("平均值为"+student.calAvg(scores)+"\n最大值为"+student.calMax(scores));
    }
}

7.4 对象作为参数

public class Student {
	String name;
	String pwd;    
		public void add(Student student){
			this.name = student.name;        
			this.pwd = student.pwd;    
		}    
		public static void main(String[] args) {        
			Student student = new Student();       
			Student student1 = new Student();        
			student1.name = "baba";        
			student1.pwd = "8888";
			student.add(student1);
			System.out.println(student.name+"***"+student.pwd);  
		}
}

8 包

8.1 为什么需要包

可以让同名的类出现在工程中

8.2 创建包

关键词:package
包都放在类的第一行
包的关键词是package
包的结束字符是;

8.3 包的命名规范

包由小写字母组成
一般前缀是公司的域名的缩写

8.4 导入包

1)导入系统包中的某个类
import java.util.Scanner
2)导入自定义包中的某个类
import com.zlt.User
3)导入某路径下的包的所有类
import com.zlt.*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值