返回值是引用类型

1、返回值如果是具体类型!

/*
	返回值研究
		基本类型:	四类八种	public int sum(int a,int b){}	返回什么类型,就是使用当前基本类型接收数据即可!
		引用类型:
			具体类:如果方法的返回值类型是具体类,需要返回的是该类的具体对象
			抽象类
			接口
*/
class Student{
	public void study(){
		System.out.println("Good Good Study,Day Day Up") ;
	}
}

class StudentDemo{
	public Student method(){	//如果返回值类型是具体类,需要返回的是该类的具体对象
	
		//分步走
		//Student s = new Student() ;
		//return s ;
		//return  ;
		
		return new Student() ;//匿名对象
	}
}

//测试:
class StudentTest{
	public static void main(String[] args){
		//需求:调用StudentDemo中method 方法
		StudentDemo sd = new StudentDemo() ;
		//调用
		Student s = sd.method() ;
		s.study() ;
	}
}

2、返回值如果是抽象类型!

/*
	返回值研究
		基本类型:	四类八种	public int sum(int a,int b){}	返回什么类型,就是使用当前基本类型接收数据即可!
		引用类型:
			具体类:如果方法的返回值类型是具体类,需要返回的是该类的具体对象
			抽象类:如果方法的返回值是一个抽象类类型,需要返回的是该抽象类的子类对象
			接口
*/
//抽象类
abstract class Person{
	public abstract void work() ;
}

class PersonDemo{
	public Person function(){//返回值是一个抽象类,需要通过子类进行实例化
		//需要返回值 return
		//return new Person() ; //不能实例化
		//抽象类多态
		//分步走
		//Person p = new Student() ;  //抽象类多态
		//return p ;
		return new Student() ;
	}
}
//传统方式:定义一个抽象类的子类
class Student extends Person{
	public  void work() {
		System.out.println("学生喜欢敲代码...");
	}
}


class PersonTest{
	public static void main(String[] args){
		//需求:调用PersonDemo中的function方法
		//创建PersonDemo对象
		PersonDemo pd = new PersonDemo() ;
		
		Person p = pd.function() ; //返回抽象类Person对象 Person p = new Student() ;
		p.work();
		//Scanner sc = new Scanner(System.in) ;System.in---->返回值是InputStream:抽象类
	}
}

3、返回值如果是接口类型!

/*
返回值研究
		基本类型:	四类八种	public int sum(int a,int b){}	返回什么类型,就是使用当前基本类型接收数据即可!
		引用类型:
			具体类:如果方法的返回值类型是具体类,需要返回的是该类的具体对象
			抽象类:如果方法的返回值是一个抽象类类型,需要返回的是该抽象类的子类对象
			接口:如果方法的返回值是一个接口类型,需要返回该接口的子实现类对象!
*/
//接口
interface Train{
	public abstract void study() ;
}

class TeacherDemo{
	public Train method(){ //返回值是接口类型,不能直接返回接口,需要返回的是该接口的子实现类对象
		//返回值 return
		//return new Train(); 接口不能实例化
		//分步走
		//接口多态
		//Train tr = new TrainImpl() ;
		//return tr ;
		
		return new TrainImpl() ;
		
	}
}
//定义接口的子实现类
class TrainImpl implements Train{
	public void study(){
		System.out.println("学习JavaEE...") ;
	}
}

class InterfaceTest{
	public static void main(String[] args){
		//需求:调用TeacherDemo中的method方法
		TeacherDemo td  = new TeacherDemo() ; 
		Train t = td.method() ;//返回值是接口类型   Train t = new TrainImpl() ;
		t.study() ;
	}
}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
`str()`是`std::smatch`类的成员函数,用于返回匹配结果的字符串。 `std::smatch`是C++标准库中的一个类,用于保存正则表达式的匹配结果。当使用正则表达式进行匹配时,可以将匹配结果保存在`std::smatch`对象中,并使用其成员函数来获取匹配结果的相关信息。 `str()`函数返回一个字符串类型的值,即匹配到的字符串。具体来说,如果正则表达式成功匹配到了字符串,则`str()`函数返回匹配到的字符串;如果未匹配到任何内容,则`str()`函数返回一个空字符串。 需要注意的是,如果在正则表达式中使用了多个捕获组(使用括号括起来的部分),那么`str()`函数默认返回整个匹配结果的字符串。如果你想获取某个特定捕获组的字符串,可以通过`smatch`对象的索引访问相应的捕获组,然后使用`str()`函数获取该捕获组的字符串。 以下是一个示例代码,展示了如何使用`str()`函数获取匹配结果的字符串: ```cpp #include <iostream> #include <regex> #include <string> int main() { std::string str = "Hello, 12345 World!"; std::regex regex("\\d+"); // 匹配一个或多个数字 std::smatch match; if (std::regex_search(str, match, regex)) { std::string matchedStr = match.str(); std::cout << "匹配到的字符串:" << matchedStr << std::endl; } return 0; } ``` 在上述示例代码中,我们使用正则表达式匹配字符串`str`中的数字部分,并将匹配结果保存在`std::smatch`对象`match`中。然后,我们使用`str()`函数获取匹配到的字符串,并将其赋值给变量`matchedStr`。最后,我们通过输出语句将匹配到的字符串打印出来。 需要注意的是,`str()`函数返回的是一个副本而不是引用,因此对返回的字符串进行修改不会影响原始匹配结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值