java学习笔记5

news2024/11/18 9:06:19

9. 类和对象

9.1 类

9.1.1 类的定义

​ 类是具有相同属性和方法的具体实例的集合,类是对象的抽象,对象是类的具体实例

9.1.2 类语法
public class 类名{
  // 1. 属性
  public 变量的类型 变量名称1;
  public 变量的类型 变量名称2;
  ...
  // 2. 方法
  public void 方法1(){}
  public void 方法2(){}
  ...
}
9.1.3 类图
  • 类的图形化表示方式

9.1.4 创建类
package cn.bdqn;

/**
 * 学校类School 包含学校名称、学校地址、教室数量属性和显示学习信息的方法
 *
 * @author 强哥
 * 2023-05-25
 */
public class School {
   
  // 1. 定义属性
  public String schoolName; // 学校名称
  public String address; // 学校的地址
  public int roomCount; // 教室数量
  public int age = 21; // 创办年数

  // 2. 定义方法 5个要素:修饰符public 返回值类型void 方法名称showInfo 形参列表() 方法体{}
  public void showInfo(int a,String args,double num) {
   
    // 方法中this指的是当前方法调用的对象,是当前类的具体实例对象
    System.out.println("学校名称:" + this.schoolName);
    System.out.println("学校地址:" + this.address);
    System.out.println("教室数量:" + this.roomCount);
  }
}

9.2 对象

9.2.1 对象的定义

对象: 描述客观事实的实体,由一组属性和方法组成

9.2.2 对象的属性

属性: 是对象具有特征,如张浩同学的特征:年龄,性别,身高,体重,爱好,手机号,qq,邮箱 ,微信…

9.2.3 对象的方法
  • **方法:**对象执行功能,实际就是方法体对应的代码
  • 方法5要素:
    • 方法的修饰符: public 、private、static…
    • 方法的返回值类型: void、String[] 、double、School…
    • 方法名称: showInfo、task1、demo1…
    • 方法的形式参数列表 :(int a,String args,double num) 中间定义的局部变量称形式参数列表
    • 方法体:{}之间的代码块
9.2.4 创建对象
public static void main(Srting[] str){
   
  // 1. 创建对象 
  School sc = new School();
}
9.2.5 调用对象属性
public static void main(Srting[] str){
   
  // 1. 创建对象 
  School sc = new School();
  // 2. 调用属性
  sc.schoolName = "北大青鸟合肥协同教育学院";
  sc.address = "安徽省合肥市蜀山区琥珀街道长江西路130号安徽农业大学科技长廊5楼";
  sc.roomCount = 25;
  sc.age = 21;
  System.out.println("age=" + sc.age); // age=21
}
9.2.6 调用对象方法
public static void main(Srting[] str){
   
  // 1. 创建对象 
  School sc = new School();
  // 2. 调用属性
  sc.schoolName = "北大青鸟合肥协同教育学院";
  sc.address = "安徽省合肥市蜀山区琥珀街道长江西路130号安徽农业大学科技长廊5楼";
  sc.roomCount = 25;
  sc.age = 21;
  System.out.println("age="+sc.age); // age=21
  // 3. 调用方法
  sc.showInfo();
}

10. 方法及方法重载

10.1 方法

10.1.1 方法的定义
  • 在类中定义功能代码块称方法,方法中封装了一些为解决某个问题而编写的代码片段,可以反复使用

  • 语法

    修饰符 返回值类型 方法名称(形参列表){
      ...
      方法体
      ...
      retrun 返回值;
    }
    
    public static String getMsg(int age, String name, String msg) {
         
        // 方法体
        String result = null;
        if(age > 18) {
         
            result = name + ", 恭喜你成年了," + msg;
        }else{
         
            result = name + ", 你还未成年," + msg;
        }
        // 返回值
        return result;
    }
    
10.1.2 方法的5要素
  • 修饰符 public ,static,private,protected,默认的(没有修饰符)

  • 返回值类型 String ,void,int…

  • 方法名称 getMsg

  • 形参列表 int age, String name, String msg

  • 方法体 {}中包括的程序代码

10.1.3 方法的分类
  • 实例方法 和 类方法

    public class Person{
         
    	// 实例方法,只能使用对象进行调用
    	public double getNum(double a, double b){
         
    		return a + b;
    	}
    	
    	// 类方法(静态方法), 通过类名和对象调用
    	public static String getName(String firstName, String lastName){
         
    		return firstName + lastName;
    	}
    }
    
  • 有参方法 和 无参方法

    public class Person{
         
    	// 无参方法
    	public double getNum(){
         
    		return 10;
    	}
    	
    	// 有参方法
    	public double getNum(double a, double b){
         
    		return a + b;
    	}
    }
    
  • 有返回值方法 和 无返回值方法

    public class Person{
         
    	// 无返回值方法
    	public void getNum(){
         
    		System.out.println(10);
    	}
    	
    	// 有返回值方法
    	public double getNum(double a, double b){
         
    		return a + b;
    	}
    }
    
  • 构造方法

    public class Person {
         
    	// 构造方法
    	public Person(){
         }
    
    	// 无返回值方法
    	public void getNum(){
         
    		System.out.println(10);
    	}
    	
    	// 有返回值方法
    	public double getNum(double a, double b) {
         
    		return a + b;
    	}
        
        // 类方法(静态方法) 通过类名和对象调用
        public static void setNum(int a ){
         
            System.out.println(a * 10);
        }
    }
    
10.1.4 方法的调用
  • 实例方法调用:使用类的对象调用方法

    Person person = new Person();
    person.getNum();
    double res = getNum(1, 2);
    System.out.println(res); // 3
    
  • 类方法调用: 通过类名或对象调用方法

    Person person = new Person();
    Person.setNum(10); // 100
    person.setNum(20); // 200
    
  • 构造方法调用:用于创建对象的方法

    Person person = new Person();
    

10.2 有参方法

10.2.1 有参方法语法
public class Calculator {
   
	public void add (int a, int b) {
   
		System.out.println(a + b);
	}
}
  • 方法add中的小括号中的int a,int b就是方法 的形参列表,是调用时等待赋值的局部变量
10.2.2 有参方法调用
public static void main(String[] args) {
   
	Calculator cal = new Calculator();
	cal.add(1, 2); // 3
}
  • 先创建Calculator类的对象 cal = new Calculator();
  • 通过对象cal调用方法add(1,2),传递两个参数1,2称实参,分别赋值给int a=1; int b = 2;
  • 执行方法体:输出结果 3

10.3 构造方法

10.3.1 构造方法语法
public class Dog {
   
    private String name;
    private int age;
    private int love; // 亲密度
    private int health; // 健康值
	// 修饰符 + 类名 组成的方法称构造方法
	public Dog(){
   }
}
10.3.2 构造方法作用
  • 构造方法用 new 指令创建对象

    Dog dog = new Dog(); // 使用new创建对象
    
  • 构造方法中可以对对象的属性进行初始化 或 执行其它功能

    // 构造方法
    public Dog(

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1610496.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pandas/python 一个实战小案例

上次写坦克游戏的时候,接触了一点pandas,当时只是简单了解了一下如何遍历行和列并获取值来替换图片,想更多了解pandas。正好有一些数据需要筛选,试试能不能用通过代码实现。虽然总的来说不复杂,但由于原始数据在命名、…

【重要】Perplexity订阅问题看这一篇就够了!Perplexity免费版和订阅版区别?免费使用G|P|T-4!

常见问题 Q:Perplexity是什么?Perplexity有什么用? A:Perplexity是一个AI搜索引擎,可以理解为可以检索网络结果的G|P|T,尤其是选中“Academic”后支持特定学术论文的检索。并且文献是真是可查到的而不是G|P…

启明智显应用分享|基于ESP32-S3方案的SC01PLUS彩屏与chatgpt融合应用DEMO

今天将带大家真实体验科技与智慧的完美融合——SC01PLUS与ChatGPT的深度融合DEMO效果呈现。 彩屏的清晰显示与ChatGPT的精准回答,将为我们带来前所未有的便捷与高效。 SC01PLUS是启明智显基于ESP32-S3打造的一款3.5寸480*320分辨率的彩屏产品,您可以看…

【算法刷题 | 回溯思想 06】4.17(子集、子集||)

文章目录 9.子集9.1题目9.2解法:回溯9.2.1回溯思路(1)函数返回值以及参数(2)终止条件(3)遍历过程 9.2.2代码实现 10.子集 ||10.1题目10.2解法:回溯10.2.1回溯思路10.2.2代码实现 9.子…

SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出

目录 介绍 快速开始 引入依赖 简单导出 定义实体类 自定义转换器 定义接口 测试接口 复杂导出 自定义注解 定义实体类 数据映射与平铺 自定义单元格合并策略 定义接口 测试接口 一对多导出 自定义单元格合并策略 测试数据 简单导入 定义接口 测试接口 参…

畅游网络:构建C++网络爬虫的指南

概述 随着信息时代的来临,网络爬虫技术成为数据采集和网络分析的重要工具。本文旨在探讨如何运用C语言及其强大的cpprestsdk库构建一个高效的网络爬虫,以便捕捉知乎等热点信息。为了应对IP限制的挑战,我们将引入亿牛云爬虫代理服务&#xff…

【网络设备巡检命令】--思科、华为、H3C、锐捷

【网络设备巡检命令】--思科、华为、H3C、锐捷 一、思科二、华为三、H3C四、锐捷 💖The Begin💖点点关注,收藏不迷路💖 一、思科 1、查看系统信息: show version2、查看时间: show clock3、查看序列号&a…

友思特应用 | 红外视角的延伸:短波红外相机的机器视觉应用

导读 短波红外SWIR在不同波段针对不同材料的独特成像特征为各领域检测应用的拓宽提供了基础。本文将展现短波红外成像技术在水分检测、塑料检测、太阳能电池板检查和矿场开采等领域的丰富应用案例,讨论短波红外相机在未来的发展方向。 SWIR 背景简介 短波红外 &am…

【vue】el-tree的新增/编辑/删除节点

1、概述 关于树形结构的新增同级节点&#xff0c;新增子级节点&#xff0c;修改节点名称&#xff0c;删除节点等四种操作&#xff0c;各种参数配置完全继承el-tree&#xff0c;本篇使用vue2 element-ui 2、效果图展示 3、调用方式 <template><Tree:data"tree…

前后端跨域请求代码实战(vue3.4+springboot2.7.18)

前端代码 v3.4.21&#xff08;前端不是主业&#xff0c;所以就贴一贴代码&#xff0c;有疑问评论区见&#xff09;后端代码&#xff0c;springboot 2.7.18&#xff08;后端&#xff09; 文章内容&#xff1a; 一&#xff0c;后端代码 二&#xff0c;前端代码 三&#xff0c;后…

美创科技19周年数据安全案例展

2005-2024 践行“让数据更安全&#xff0c;更有价值”的使命 美创19年砌垒&#xff0c;与不同行业用户 一同筑牢数字之基 美创19周年案例展 走进这段时间长廊 探索美创与各行业伙伴的数据安全实践 #1 数据安全体系化建设 浙江省&#xff0c;数字化改革先行地。以数字化…

进程间通信(1)管道

我最近开了几个专栏&#xff0c;诚信互三&#xff01; > |||《算法专栏》&#xff1a;&#xff1a;刷题教程来自网站《代码随想录》。||| > |||《C专栏》&#xff1a;&#xff1a;记录我学习C的经历&#xff0c;看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

抖音小店怎么做?新手起店只需三步,看这一篇就够了

大家好&#xff0c;我是电商笨笨熊 抖音小店现如今已经人尽皆知&#xff0c;只因为让不少的普通玩家有了做电商的机会。 但是对于新手小白来说&#xff0c;做抖店一定不要盲目&#xff0c;此项目固然能让众多人从个人走到团队化&#xff0c;但也要掌握方法。 所以今天我们就…

半导体存储电路知识点总结

目录 一、SR锁存器 1.SR锁存器的概念 2.作用 二、电平触发器&#xff08;Flip-Flop&#xff09; 1.时钟信号 2.电平触发的触发器电路结构 3.带异步置位复位的电平触发器 三、边沿触发器 1.特点 2.两个D触发器组成的边沿触发D触发器 3.CMOS边沿触发D触发器的典型电路 …

通过PyCharm平台开发Django应用程序

学会使用命令行工具开发Django应用程序是基础&#xff0c;不过更多的时候还是要借助平台开发工具。目前&#xff0c;最好的Django应用程序开发工具就是jetBrains公司推出的PyCharm平台了。 借助PyCharm开发平台&#xff0c;可以极大提高开发Django应用程序的效率&#xff0c;同…

R语言中的execl数据转plink

文章目录 带出外部连接的方式添加列的方式从列表中选出对应的数据信息查看变量信息没有成功 带出外部连接的方式 点击这个黄色的按钮就可以弹出外部链接的方式 添加列的方式 创建一个数据框的方式 我们创建一个三行三列的数据方式 df <- data.frame(name c("Alice&…

BUUCTF-MISC01金胖

题目&#xff1a;动图使用Stegsolve软件进行逐帧查看 下载文件后&#xff0c;图片隐写之gif多帧隐藏&#xff0c;这类题比较简单&#xff0c;只需要将图片使用Stegsolve软件进行逐帧查看就行了.file-open打开添加文件 将文件添加进来&#xff0c;而后点击Analyse-Frame Browse…

【linux运维】系统常见管理命令

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了学习基本的shell编程和linux命令&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于b站大学——linux运维课程进行的&#xff0c;…

【计算机毕业设计】二手车估值与销售网络平台产品功能介绍——后附源码

&#x1f389;**欢迎来到琛哥的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 琛哥&#xff0c;一名来自世界500强的资深程序猿&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 琛哥在深度学习任务中展现出卓越的能力&a…

C语言 ─── 操作符详解

目录 1. 算术操作符 2. 移位操作符 2.1 左移操作符 2.2 右移操作符 3. 位操作符 4. 复合赋值符 5. 单目操作符 6. 逗号表达式 7. 隐式类型转换 7.1 整型提升的意义&#xff1a; 7.2 如何进行整体提升呢&#xff1f; 8. 算术转换 ★★★数组名 1. 算术操作符 -…