第三章 类与对象基础

1.练习回顾

使用java循环输入5个人的分数,求总分,平均分,最大值,最小值,统计80分以上的学生比例

要求:

1.所有分数都输入正确,才输出总分,平均分

2.有任意分数错误,则终止循环,输出错误提示

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double sum =0;
        boolean flag =true;
        double max = 0;
        double min = -1;
        int count = 0;
        for (int i = 1; i <= 5; i++) {
            System.out.println("请输入第"+i+"个同学的成绩:");
            double t = scanner.nextDouble();
            if(t>100||t<0){
                System.out.println("输入的成绩有误");
                flag =false;
                break;
            }
            sum +=t;
            if(max<t){
                max = t;
            }
            if(min==-1||min>t){
                min = t;
            }
            if(t<80){
                continue;
            }
            count++;
        }
        if(flag){
            System.out.println("总分:"+sum+"\n平均分:"+(sum/5)+"\n最高分:"+max+"\n最低分:"+min+"\n80分以上学生比例:"+(count/5.0*100)+"%");
        }

    }

2.Java流程控制

        控制代码如何执行,是否执行,执行几次。

2.1程序结构

顺序结构,分支结构,循环结构

2.2分支结构

①if(){}

②if(){}else{}

③if(){}else if(){}else if(){}   else{}

④switch case
switch:用于固定值得分支判断,后面可以跟char,byte,short,int,String;不能跟float,double,long
break:可以省略,省略之后,代码会贯穿执行。

2.3 循环结构

①while 循环

循环四要素:初始化变量,循环条件,循环体,循环体,循环变量的自增。

注意避免:while(true) ,while(false)

②do while循环

while 先判断再执行

do while 先执行一次再判断

do while 至少会执行一次

2.4 for  循环

for(初始化变量①;判断条件②;步进表达式④){

        循环体③

}

2.5输出时的特殊字符

 2.6 break和continue

continue:跳过部分代码继续循环

break:终止循环

3.类与对象基础

3.1 类和对象的概念

3.1.1什么是对象

对象:我们所面对的可以描述其具体形象的事物称为对象。对象可以简单理解为看得见摸得着的事物;

一般我们从两个方面来描述一个对象:属性(特征),方法(行为)。

属性:用于描述对象具体的特征;

方法:用于描述对象具有的行为或功能。

如:描述一个电视机

属性:

        颜色:

        品牌:

        价格:

方法:

        播放电视剧()

        开机()

        关机()

3.1.2 什么是面向对象编程

        面向对象程序设计(英语:Object-oriented programming,缩写:OOP) 是种具有对象概念的程序编程典范,同时也是一种程序开发的抽象方针。它可能包含数据、属性、代码与方法。对象则指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关联的数据。在面向对象程序编程里,计算机程序会被设计成彼此相关的对象。

3.1.3 面向过程和面向对象编程

        在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性,面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用,增强可维护性,所以,面向对象的开发更像是一个具备标准的开发模式。

面向过程:针对开发中程序遇到的每一个问题,进行单个的编码解决。

(自己做饭,买菜,洗菜,炒菜,自己吃)

面向对象:只对结果,不管实现的细节。

(到饭馆叫饭,自己吃)

 学习面对对象其实就是学习如何在代码中使用 封装,继承,多态(重点)。

在面向对象定义之中,也规定了一些基本的特征:

①封装:保护内部的操作不被破坏; 安全性

②继承:在原本的基础之上继续进行扩充; 复用性

③多态:在一个指定的范围之内进行概念的转换。 可扩展性

面向对象的开发分为三个过程:

OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)。

总结:面向对象最终的目的是在保证功能实现的基础上,方便后期程序的维护。

3.2 类的概念

3.2.1 什么是类

具有相同属性和行为的对象,可以被归为一类。

令狐冲:
属性:姓名(令狐冲),性别 ( ) ,年龄 ( 28 )
方法:会武功 ( 耍剑 )
东方不败:
属性 : 姓名(东方不败),性别 ( ) ,年龄 ( 18 )
方法:会武功 ( 绣花 )
令狐冲和东方不败都具有相同的属性和方法,因此他们可以归为【人类】。
由此:
宝马,奔驰,法拉利也具有相同的属性和行为所以可以归为【车类】。

 类:将具有相同属性和方法的对象进行抽象,这就是类。

一般包括了属性和方法两大部分;可以理解为类是对象的设计图纸,类限定了对象具有的特征属性和行为,因为可以将类看作对象的模板。通过一个类,我们可以创建任意一个对象,而被创建的同一个类的任意个对象,都具有相同的属性和行为。

类是对象的模板,对象是类的实例。

类是抽象的概念,对象是具体的存在。、

注:同一个类的对象,会具有相同的属性和方法,但是他们的属性值可以不一样,这样可以区分出不同的对象实体。

面向对象编程,为什么要从 定义类 开始?
因为在创建对象(车/房子)之前,需要先设计对象具有的属性和行为,所以要先把对象所属的 ( 汽车图纸/房屋图纸 )定义出来。 通过定义好的类,来创建这个类型的对象 先有月饼模子,再创建月饼出来 )。
面向对象编程的步骤:
1.定义所用对象的类型;
2.用类型创建具体的对象;
3.调用对象的属性和方法,完成程序处理。

3.2.2 类的结构

public class 类名 {
    //成员属性
    
    //构造方法

    //成员方法
}
public class Student {
    // 属性: 成员属性,成员变量,全局变量
    // 姓名
    String name;
    // 性别
    String sex;
    // 年龄
    int age;
    // 身高
    double tall;
    // 方法: 成员方法,实例方法
    public void eat(){
        // this:当前对象
        System.out.println(this.name+"吃早餐");
    }
    public void study(){
        System.out.println(this.name+"学习java");
    }
}

3.2.3 类的使用

        使用类创建对象,为对象赋值,并调用对象方法。

public class Test01 {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.name = "张三";
        stu.age = 20;
        stu.sex = "男";
        stu.tall = 1.75;

        stu.eat();
        stu.study();

    }
}

注:类的属性本质是全局变量,是有默认值的。

         字符串:null   整形:0   小数:0.0  布尔:false

        而方法内的变量是局部变量,不赋值的时候无法使用。

面向对象编程的步骤:
1. 根据题目定义类 : 定义属性和方法
2. 使用类
        a.创建测试类,定义 main 方法
        b.在 main 方法中,使用类创建对象 : 类名 变量 = new 类名 ();
        c. 使用创建出来的对象,设置对象属性,访问对象属性,调用对象方法完成特定功能

 3.3 构造方法

        在类创建对象的时候,通过new关键字调用的方法称为构造方法。它可以用于为对象属性设置初始值。

public calss 类名{
    //无参构造
    public 类名(){
    
    }
    //构造方法
    public 类名(参数列表){
        //初始属性
    }
}
特征:
①构造方法是非常特殊的方法,方法名要与类名完全一样;
②构造方法不能写返回值;
③构造方法通过new关键字调用;
④ 一个类中,可以定义构造,也可以不定义构造。当类中没有定义构造的时候,系统会提供默 认无参构造,当类中定义了构造之后,系统将不再提供默认无参构造;
⑤一个类中可以定义多个构造(可以有参,可以无参)。

 作用:

① 使用类创建对象的时候要调用构造方法;
②通过构造可以为对象的属性设置初始值,避免漏掉某些属性不赋值。
public class Student {
    String name;
    String sex;
    int age;
    double tall;
    String school;

    public void eat(){
        System.out.println(this.name+"在吃早饭");
        return ;
    }
    public void study(String scroll){
        System.out.println(this.age+"岁的"+this.school+"的学生"+this.name+"在学"+scroll);
    }

    public Student(){
        System.out.println("无参构造");
    }
    public Student(String name,String sex){
        this.name = name;
        this.sex = sex;
        System.out.println("有参构造:"+this.name+"\n"+this.sex+this.age+this.school);
    }
    public Student(String name,String sex,int age,double tall,String school){
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.tall = tall;
        this.school = school;
        System.out.println(this.name+this.sex+this.age+this.tall+this.school);
    }
}
//通过构造方法创建类的对象
Student stu=new Student("张三","男",18,1.75,"**");

小结:

①定义构造方法:public + 类名(参数列表){初始化代码};
②当类没有构造方法时,系统会给一个默认的空构造方法;
③当你一旦定义了自己的构造方法,系统就收回了默认的构造方法;
④如果还想用默认的构造方法,则必须自己另外定义;
⑤自定义的构造方法主要用于对象的初始化。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值