2020-12-17

java笔记

构造方法
构造方法的定义:在一个类中定义的方法如果满足以下3个条件
1、方法名与类名相同;2、在方法名的前面没有返回值类型的声明;3、在方法中不能使用return语句返回一个值,但是可以单独写return语句来作为方法的结束
例如:class Person(){
public person(){ //这里开始类的构造方法
System.out.println(“无参的构造方法被调用了”)
}
}
public class Example05{
public static void main(String[]args){
person p1=new Person(); //实例化person对象
}
}

构造方法的重载
在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或者参数个数不同。在创建对象的时候,可以通过调用不同的构造方法来为不同的属性进行赋值。
例如:
class Person{
String name;
int age;
//定义;两个参数的构造方法
public Person(String con_name,int con—age){
name=con_name; //为name属性赋值
age=con_age; //为age属性赋值
}
}
//定义一个参数的构造方法
public Person(String con_name){
name=con_name;
}
Person类中定义了两个构造方法,这里他们就构成了重载。这里这两种构造方法对赋值情况不一样,第二种对于age属性的赋值为默认值为0。

方法的封装
格式:s.p() ,这里的s是类名,p是方法名
例子:public classT{
public static void main(String[]args){
TT.dosome(); //调用TT的dosome的方法
}
}
public class TT{
public static void main dosome(){
system.out.println(“do something”);
}
}
这里的println就相当于方法的重载,别人用的是我创建的dosome的方法,而实际想要的是方法里面println里面输出的内容。这里的TT和T必须保存在同一个文件夹上,这要就可以使用。

方法递归
方法递归就是自己调用自己
例如:public class Re{
public static void main(String[]args){
dosome();
}
}
public static void dosome(){
System.out.println(“dosome begin”);
dosome();
System.out.println(“dosome over”); //这一行的代码永远执行不到,这里执行的是上面的dosome方法
}
2、当递归时程序没有结束条件,一定会发生栈内存溢出错误的情况(Stack overflow Error),所以递归必须要有结束条件
3、递归假设有结束条件,就一定不会发生占内存溢出错误的情况吗?若假设这个条件是对的是合法的,递归有时也会出现栈内存溢出错误,因为有可能递归的太深,占内存不够,一直在进行压栈。
4、在实际开发的过程中,不建议轻易的选择递归,能够用for循环while代替尽量用循环来做,因为循环效率高耗费的内存小。递归使用不当,就会导致JVM死掉。

当功能相似的时候考=考虑使用方法重载机制,建议将方法名定义为一致的这样的代码美观,而且又方便编程。,当然功能不相似的时候,让方法名也不一致
代码满足以下条件的时候就构成了方法的重载1、在同一个类中2、方法名相同3、形式参数列表不同(类型、个数、顺序)
注意:方法的重载和返回值类和返回值类型无关,和修饰符列表无关
栈内存溢出错误怎么办?先检查结束条件是否正确,如果正确,就可以调整JVM的栈内存大小。

运用递归求1~n的和
public class Re{
public static void main(String[]args){
int reValue2=sum(3);
System.out.println(retValue2);
}
public static int sum(int n){
if(n==1){
return1;
}
return n+sum(n-1);
}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值