Java学习笔记__方法{2019.7.14}

本文主要介绍Java中方法的相关知识。包括一般方法的声明格式,如public、static、void等关键字的含义;方法的重载规则。还阐述了构造方法的作用、格式特点,有无参构造方法的使用,给成员变量赋值的三种方法,以及继承中构造方法的关系,最后对比了方法的重写与重载。

一:声明一般方法的格式

	public  static void printStar(int row,int column){
		for(int i= 1; i <= row; i++){
			for(int j = 1; j <= column; j++){
				System.out.print("*	");
			}
			System.out.println();
		}
	}

(1)这里是在main方法外声明的一个逐行打印星星的方法

public:代表这是一个公共的方法,类里类外都可以访问。

static:表明这是一个静态的方法,意思是,这个方法只可以访问静态的成员变量或者静态的方法。并且在执行静态的方法时,可以不用创建对象,直接使用:类名.printStar(row,column);,在同一个类中使用静态方法时,可以将类名省略。(方法不一定都是静态的)

void:代表不需要返回值,在这里只是执行一些打印的代码,并不需要返回一些特殊的需要计算的值或者字符。一般在遇到需要或者获取的方法时需要将void改成其他的数据类型。并且添加return。

printStar:代表的是方法的名称。

(int row,int column):代表参数类型和参数名称

方法不用就不执行;

(2)方法的重载
首先,方法的重载要确保方法的名称要一样;

其次,修饰符(public private、static)和返回值类型与方法的重
载无关;

然后参数的类型不能完全一样,至少要保证一个不同,另外,参数的名称也与方法的重载无关。
(无关就是指直接复制粘贴一个方法,再通过改参数的名称,一样还是会报错)

二:构造方法

构造方法作用:给对象的数据(属性)进行初始化赋值

构造方法格式特点:
1.方法名与类名相同(大小也要与类名一致)
2.没有返回值类型,连void都没有
3.没有具体的返回值return
4.构方法分为【有参构造方法】和【无参构造方法】两种

(1)无参的构造方法

	public Person(){
	 	name = "叶东宇";
		age = 23;

	}

在无参的构造方法中,可以直接给成员变量赋值如上面的代码,在调用时,可以直接执行其他的方法,而不用再赋值如:

		Person p1 = new Person();
		p1.say();

(2)有参的构造方法

	public Person(String myName,int myAge){
		name = myName;
		age = myAge;
	}

需要定义参数的类型和名称,在调用时,可以灵活输入自己想要输入的内容:

		Person p3 = new Person("东宇",23);
		p3.say();

当然,每次都要写一个myName和myAge会很麻烦,因此可以将上面的代码写成:

public Person(String name,int age){
		this.name = name;
		this.age = age;
	}

就是添加this,表明直接指向成员变量。静态方法中不可以添加this。在eclipse中可以直接通过Alt+Shift+S,选择:Generate Constructor using filed来直接构造有参方法。

一般添加了有参的构造方法后(系统不会默认添加无参的构造方法,同样),因此最好自己添加一个无参的构造方法。

当然,即使不添加一个无参的构造方法也可以通过直接赋值来消除错误不添加null,0或者其他的数据会报错:

Student stu2 =  new Student(null,0);

(3)给成员变量赋值的三种方法

1直接赋值:通过使用无参的构造方法:(用的少)
对象名.成员变量名 = value

2通过创建set方法

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

再通过使用set方法

stu2.setName("马化腾");

3通过有参构造方法

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

在创建对象时直接使用

	Student stu3 = new Student("王健林",45);

(4)继承中的构造方法之间的关系:
子类中所有的构造方法 默认 都会访问父类中空参数的构造方法
因为子类会继承父类中的数据,可能还会使用父类的数据。
所以,子类初始化之前,一定要先完成父类数据的初始化。
在加载子类时,父类一定会加载,且先于子类加载到方法区。

		Student stu1 = new Student();
		Student stu2 = new Student("小李", 40);
		stu2.useMoney();
	}
}
class Person{

	int money;
	
	public Person(){
		super();//Person继承的是Object
		money = 1000000;
		System.out.println("父类Person的无参构造方法");
		
	}
}
class Student extends Person{
	//如果一个类里不写任何的构造方法,系统就会提供一个无参的构造方法
	public Student(){
		//子类初始化之前,一定要先完成父类数据的初始化。省略了super();你不写,系统也会默认加上去
		super();
		System.out.println("子类Student的无参构造方法");
	}
	
	public Student (String name, int age){       //这里即使父类和子类没有添加属性,这里也可以有name,age,只要在创建对象时参数类型用对,就能执行里面的语句
		System.out.println("子类的有参的构造方法");
	}
	
	public void useMoney(){
		System.out.println("用钱" + money);
	}
	
}

/*输出结果:
父类Person的无参构造方法
子类Student的无参构造方法
父类Person的无参构造方法
子类的有参的构造方法
用钱1000000
*/

但是子类中的构造方法也可以改成访问有参的构造方法,默认情况下访问的是父类的无参构造方法

class Person{

	String name ;
	int age;
	
	public Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
}
class Student extends Person{//
	public Student(){
		//super();不调用父类的无参构造方法,改成有参的构造方法
		super("小王", 34);
	}
}

父类没有无参构造方法,子类怎么办?

  1. 子类必须创建无参构造方法,内部用super调用父类构造方法
  2. 子类实现有参的构造方法,且用super调用父类的构造方法。
  3. 父类自己实现无参构造方法。

(5)方法的重写与方法的重载之间的关系

方法的重写(Override)仅限于在子类和父类中使用,修饰符、返回值、方法名、参数类型都要一样,其方法内容可能不一样。
方法的重载(Overload)需要保证方法名一样。

方法的重写可以让子类沿袭父类的功能,同时也可以添加属于自己的内容

格式:

class Father{

	public void drive(){
		System.out.println("开宝马。。。");
	}	
	
}
class Son extends Father{

	@Override
	public void drive() {
		super.drive();//演习父类的功能,下面可以加入自己的想要的功能
		System.out.println("开红旗。。。");
	}
	
}

父类的私有方法,子类无法继承,因此也无法重写。因此,子类重写父类方法时,访问权限最好就一致。此外,final修饰的方法也无法被重写

【无线传感器】使用 MATLAB和 XBee连续监控温度传感器无线网络研究(Matlab代码实现)内容概要:本文围绕使用MATLAB和XBee技术实现温度传感器无线网络的连续监控展开研究,介绍了如何构建无线传感网络系统,并利用MATLAB进行数据采集、处理与可视化分析。系统通过XBee模块实现传感器节点间的无线通信,实时传输温度数据至主机,MATLAB负责接收并处理数据,实现对环境温度的动态监测。文中详细阐述了硬件连接、通信协议配置、数据解析及软件编程实现过程,并提供了完整的MATLAB代码示例,便于读者复现和应用。该方案具有良好的扩展性和实用性,适用于远程环境监测场景。; 适合人群:具备一定MATLAB编程基础和无线通信基础知识的高校学生、科研人员及工程技术人员,尤其适合从事物联网、传感器网络相关项目开发的初学者与中级开发者。; 使用场景及目标:①实现基于XBee的无线温度传感网络搭建;②掌握MATLAB与无线模块的数据通信方法;③完成实时数据采集、处理与可视化;④为环境监测、工业测控等实际应用场景提供技术参考。; 阅读建议:建议读者结合文中提供的MATLAB代码与硬件连接图进行实践操作,先从简单的点对点通信入手,逐步扩展到多节点网络,同时可进一步探索数据滤波、异常检测、远程报警等功能的集成。
内容概要:本文系统讲解了边缘AI模型部署与优化的完整流程,涵盖核心挑战(算力、功耗、实时性、资源限制)与设计原则,详细对比主流边缘AI芯片平台(如ESP32-S3、RK3588、Jetson系列、Coral等)的性能参数与适用场景,并以RK3588部署YOLOv8为例,演示从PyTorch模型导出、ONNX转换、RKNN量化到Tengine推理的全流程。文章重点介绍多维度优化策略,包括模型轻量化(结构选择、输入尺寸调整)、量化(INT8/FP16)、剪枝与蒸馏、算子融合、批处理、硬件加速预处理及DVFS动态调频等,显著提升帧率并降低功耗。通过三个实战案例验证优化效果,最后提供常见问题解决方案与未来技术趋势。; 适合人群:具备一定AI模型开发经验的工程师,尤其是从事边缘计算、嵌入式AI、计算机视觉应用研发的技术人员,工作年限建议1-5年;熟悉Python、C++及深度学习框架(如PyTorch、TensorFlow)者更佳。; 使用场景及目标:①在资源受限的边缘设备上高效部署AI模型;②实现高帧率与低功耗的双重优化目标;③掌握从芯片选型、模型转换到系统级调优的全链路能力;④解决实际部署中的精度损失、内存溢出、NPU利用率低等问题。; 阅读建议:建议结合文中提供的代码实例与工具链(如RKNN Toolkit、Tengine、TensorRT)动手实践,重点关注量化校准、模型压缩与硬件协同优化环节,同时参考选型表格匹配具体应用场景,并利用功耗监测工具进行闭环调优。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值