JAVA入门知识点+案例介绍(第十二集)

举报
迈热 发表于 2022/04/28 19:10:56 2022/04/28
【摘要】 JAVA入门知识点+案例介绍(第十二集)

📋个人简介

📜个人简介 :
🎅 作者简介:大家好,我是迈热✌️
🌝 支持一下:点赞👍+收藏🌟+留言📪
📣 系列专栏:java基础🍁
✉️格言:先把键盘敲烂再说💻往死里敲!🌞

🌞学习前的小唠叨

🌈🌈哈喽 兄弟萌! 我们都在想成为大佬的路上加油着👍
既然我们已经踏入了学习这一长路, 那么就把它做的让
自己满意为止💜 加油兄弟萌!!!!😝

在这里插入图片描述

@[TOC](目录)

🍄 前言

🍊这一期给大家安排一波有关高级之面向对象的案例🍊

🐳案例一:构造方法及其重载

开启学习模式了哦!!!

💦1.1 案例一需求

  • 🍒🍒案例需求:编写一个类,对类的构造方法进行定义和重载

  • 🍒🍒 需求分析

    • 🎃 如果希望在创建对象的时候直接为其属性赋值,可以定义有参的构造方法。有参构造方法指的是在初始化对象时,接受外部传入的值并赋给对象的属性。

    • 🎃 和普通方法一样,构造方法也可以重载。不同的构造方法,可以为不同的属性进行赋值。

    • 🎃 本练习将通过创建对象的方式演示不同构造方法的使用方式,并根据构造方法的输出结果对构造方法的重载进行学习

  • 🍒🍒 思路:

    • 🎃 对Student类进行修改,在类中定义三个重载的构造方法,包括无参的构造方法,接收一个String类型参数的构造方法,接收String类型和int类型两个参数的构造方法。
    • 🎃 编写测试类,在main()方法中,分别使用三个重载的构造方法创建三个Student对象。

💦1.2 案例一代码演示

  • 🍒🍒代码:


import java.util.Scanner;

class Student
{
    // 将姓名name和年龄age属性定义为私有的
    private String name;
    private int age;

    public String getName()
    {
        return name;
    }

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

    public int getAge()
    {
        return age;
    }

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

    public Student(String name)
    {
        this.name=name;
    }

    public Student(String name,int age)
    {
        this.name=name;
        this.age=age;
    }
    
    void speak()
    {
        System.out.println("我的名字是" + name + ",今年" + age + "岁");
    }
}

public class Demo
{
    public static void main(String[] args) 
    {
        Scanner scan = new Scanner(System.in);
        
        // 使用无参的构造方法创建一个Student对象,并调用speak()方法
        Student s=new Student();
        //调用speak()方法
        s.speak();

        // 使用有一个参数的构造方法创建一个Student对象,并调用speak()方法
        Student s1=new Student();

        System.out.println("请输入第一个学生姓名:");
        String name=scan.next();
        s1.setName(name);
        //调用speak()方法
        s1.speak();

        // 使用有两个参数的构造方法创建一个Student对象,并调用speak()方法
        Student s2=new Student();
        System.out.println("请输入第二个学生姓名:");
        String name1=scan.next();
        s2.setName(name1);
        System.out.println("请输入第二个学生年龄:");
        int age=scan.nextInt();
        s2.setAge(age);
        //调用speak()方法
        s2.speak();

    }
}


  • 🍒🍒结果:
    在这里插入图片描述

🐳案例二:this关键字访问构造方法

第二个案例 加油啦!!!

💦1.1 案例二需求

  • 🍒🍒 案例需求:学习使用this关键字调用构造方法的使用

  • 🍒🍒 需求分析

    • 🎃 如果一个类中定义了多个重载的构造方法,为了避免在重载的构造方法中重复书写代码,可以在一个构造方法中使用this关键字调用其它的构造方法。

    • 🎃 为了掌握this关键字访问构造方法的用法,本练习使用this关键字调用其他的构造方法。

  • 🍒🍒 思路:

    • 🎃 在Student类中创建多个重载的构造方法,包括无参的构造方法、一个参数的构造方法,以及两个参数的构造方法。
    • 🎃在一个参数的构造方法中使用this关键字调用无参构造方法,在两个参数的构造方法中调用一个参数的构造方法。
    • 🎃 编写测试类,在main()方法中,调用两个参数的构造方法创建对象,演示构造方法的执行顺序。

💦1.2 案例二代码演示

  • 🍒🍒代码:


import java.util.Scanner;

class Student
{
    // 将姓名name和年龄age属性定义为私有的
    private String name;
    private int age;

    public String getName()
    {
        return name;
    }

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

    public int getAge()
    {
        return age;
    }

    public void setAge(int age)
    {

        this.age = age;
    }
    
    public Student()
    {
        System.out.println("无参的构造方法");
    }
    public Student(String name)
    {
        this();
        this.name=name;
        System.out.println("一个参数的构造方法");
    }
    public Student(String name,int age)
    {
        this(name);
        this.age=age;
        System.out.println("两个参数的构造方法");
    }

    void speak()
    {
        System.out.println("我的名字是" + name + ",今年" + age + "岁");
    }
}
public class Demo  {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        System.out.println("请输入姓名:");
        String name=scan.next();
        System.out.println("请输入年龄:");
        int age=scan.nextInt();
        Student s=new Student(name,age);
        s.setName(name);
        s.setAge(age);
        //调用speak()方法。
        s.speak();
    }
}


  • 🍒🍒结果:

在这里插入图片描述

🐳案例三:静态变量

第三个案例哦!!!!

💦1.1 案例三需求

  • 🍒🍒 案例需求:学习使用静态变量
  • 🍒🍒 需求分析
    • 🌴 当多个对象存储的数据相同时,可以使用静态变量的方式存储。
  • 🍒🍒 案例分析:
    • 🌴 定义一个学生类,并在类中定义两个非私有属性:姓名name属性和学校school属性,学校school属性为静态的,并设置默认值为“北京大学”;类中还定义一个speak方法。
    • 🌴 改写学生类的school属性值;再通过前面创建的两个对象分别调用speak()方法。

💦1.2 案例三代码演示

  • 🍒🍒代码:
import java.util.Scanner;

class Student
{
    // 定义两个非私有属性:姓名name属性和学校school属性,
    // 学校school属性为静态的,默认值为北京大学。
    public  String name;
    public  String school="北京大学";

    public Student(String name)
    {
        this.name=name;

    }

    public Student(String name,String school)
    {
        this.name=name;
        this.school=school;
    }

    void speak()
    {
        System.out.println("我的名字是" + name + ",来自" + school);
    }
}

public class Demo {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        System.out.println("请输入第一个学生姓名:");
        String name1=scan.next();
        Student s1=new Student(name1);
        s1.speak();

        System.out.println("请输入第二个学生姓名:");
        String name2=scan.next();
        Student s2=new Student(name2);
        s2.speak();

        System.out.println("请输入学校:");
        String school1=scan.next();
        Student s3=new Student(name1,school1);

        Student s4=new Student(name2,school1);
        s3.speak();
        s4.speak();

    }
}

  • 🍒🍒结果:

在这里插入图片描述

🐳案例四:静态代码块

最后一个案例哦!!!!

💦1.1 案例四需求

  • 🍒🍒 案例需求:掌握不同代码块的作用及其执行时机。

  • 🍒🍒 需求分析

    • 🌴 有时候,需要将某一段关联紧密的或者实现了某一功能的代码封装的一个代码块中。
    • 🌴 为了让熟悉代码块的应用,本练习将编写一个包含了静态代码块,局部代码块和构造代码块的类,演示不同代码块之间的执行时机。
  • 🍒🍒 案例分析:

    • 🌴 编写测试类,在类中定义一个静态代码块、一个构造代码块、一个无参的构造方法和一个成员方法localBlock(),在localBlock()方法中定义一个局部代码块。
    • 🌴 创建测试类的两个实例对象,通过这两个变量的引用分别调用localBlock()方法。

💦1.2 案例四代码演示

  • 🍒🍒代码:

public class Demo
{
	static	 
	{
		System.out.println("静态代码块");
	}
	
	{
		System.out.println("构造代码块");
	}
	
	public Demo() 
	{
		System.out.println("构造方法");
	}
	
	void show() 
	{
		{
			System.out.println("局部代码块");
		}
	}
	
	public static void main(String[] args) {
		System.out.println("---------");
		Demo t1=new Demo();
		
		System.out.println("---------");
		Demo t2=new Demo();
		
		System.out.println("---------");
		t1.show();
		
		System.out.println("---------");
		t2.show();
	}
}


  • 🍒🍒结果:

在这里插入图片描述

💻 结语

🍻🍻到这我们的任务就结束啦!!!🌝
感谢大家的阅读 如果在内容方面有什么问题的话可以
在评论区或私信告诉我吧
博主小要求🙏🙏 如果这段对大家有用的话 就给博主
一个免费的点赞👍+评论✉️ +收藏💻吧!!!
感谢大家啦💙💙💙

在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。