Java基础(6):类和对象概念的理解、Java方法(函数)的使用方式


类的概念

在Java中,类是最基础的组织单位,在Java中认为万物都是对象,对象是实际存在的事物。而类则是对对象的抽象化,类本身并不存在,是一种组织概念,用来组织同一类事物的,相当于是对象的模板。类里面定义了对象的通用行为和通用状态,但具体情况,是根据每个对象来决定的。

例子解析:
1. 公司中存在许多部门,部门有工作职能这个行为和人员这个属性。有管理部门、技术部门和财政部门等。但是每个部门职能都是不同的,所需的人员也是不同的。此时部门就是类,各种部门就是对象。如果再细化,例如对技术部门进行分类,具体到前端部门、后端部门等等。此时的技术部门就是类,而前端和后端部门就是对象了。


2. 以人类为例子,人类代表一个广泛的概念,而对人类的具体化,就是划分成黄种人、白种人和黑种人。人都会使用语言交流,使用代码来演示


//定义一个Person类
public class Person{
	private String area;//所属区域
	private String language;//语言
	
	public Person(){}
	public Person(String area,String language) {
		this.area = area;
		this.language = language;
	}
	
	//setter and getter  提供给外面的访问方法
	public String getArea() {
		return area;
	}
	public void setArea(String area) {
		this.area = area;
	}
	public String getLanguage() {
		return language;
	}
	public void setLanguage(String language) {
		this.language = language;
	}
	//使用什么语言
	public void communication() {
		System.out.println("使用的语言是:" + language);
	}
	
	public static void main(String[] args) {
		//创建对象
		Person yellowPer = new Person("亚洲","中文");
		Person whitePer = new Person("欧洲","英语");
		Person blackwPer = new Person("非洲","非式英语");
		//都调用language() 查看结果
		System.out.println(yellowPer.language);
		System.out.println(whitePer.language);
		System.out.println(blackwPer.language);
	}
}


个人理解:

如果将面向对象放在现实中来理解,就是从上至下进行细化分类,方便管理。在Java中使用面向对象编程也是如此,给定一个蓝图模板,然后具体实现由对象来实现,对象是类的具体化。 


对象概念

类是抽象的,对象是对类的具体化,每个对象都是独一无二的。从逻辑层面理解就是每一个对象的行为和状态都是不同的,就像世界上不可能有相同的树叶,虽然看起来差不多...从运行机制来看,每创建一个对象,JVM都会在堆中开辟一个空间用来存放对象,所以对象是独一无二的。

运行如下代码,可以看见输出不同的哈希值:

		System.out.println(new Person().hashCode()); 
		System.out.println(new Person().hashCode()); 

方法(函数)概念

C语言中的函数,在Java叫做方法。方法是一种功能集合,用于表明能做什么。

方法分为静态方法和实例方法:

方法定义在类中,如果被statci修饰,则是静态方法,属于类本身。没有被static修饰就是实例方法。

注意点:

  • 静态方法和静态变量一样属于类本身,所以属于类范围的都可以进行访问。这就是为什么对象可以调用类变量和方法。因为对象具有唯一标识,所以实例方法和实例变量只属于对象本身。 
  • 类方法和类变量是共享的,可以使用对象来调用,并不建议这样使用,尽量用类来调用静态方法和变量。

方法定义格式:

   //无参无返回值
   public void test1() {System.out.println("qwreqwrqw");}
   //有参无返回值
   public void test2(String str) {System.out.println(str);}
   
   //无参有返回值
   public String test3() { return "返回一个字符串"; }
   //有参有返回值
   public String[]test4(String...str){
      return  str;
   }
关于方法中有返回和没返回的区别,如果你这个方法可以直接完成想要的功能那就无需返回值,如果你的方法直接得不到结果,需要它反馈数据出来,才能完成你的功能那就需要返回值,具体可参考最上面的代码写的set和get 方法。

方法重载形式

	public void test2(String str) {System.out.println(str);}
	public void test2(int a) {System.out.println(a);}
可以从上面的代码看出,两个的方法的修饰符一样,返回值一样,方法名一样,只有传入的参数不同,方法中传入参数都是形参,如果类型相同的话,会被等同于一个参数。则无法重载。
方法重载有什么用?
例如要写一个求出数值总和的方法,常规方式使用:add(int a, int b) , 但是如果需要3个参数相加呢?再 写一个方法,add2(int a,int b ,int c)  ,要求越来越多的话,方法名就会越来越多,越来越麻烦。
而使用方法重载,只需一个方法名,根据传入的参数就能完成不同的功能,这就是方法重载的意义。
方法重载三种形式:
  • 参数类型不同
  • 参数列表不同
  • 参数顺序不同
注意:方法中的形参名只是用来传递的,用来指向要传入的参数,形参名就算取不同的名字,如果类型一样,也会当成一个。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值