首页 > 编程语言 >java —— 类与方法

java —— 类与方法

时间:2024-05-26 17:02:24浏览次数:15  
标签:innermethod java String static OuterSample 方法 public

一、访问修饰符

在类和方法中,均可使用访问修饰符以锁定该类或方法的被访问权限。访问修饰符有四种:

(一)public

同一个项目中,对所有的类可见。

(二)protected

同一个项目中,对同一个包中的类可见,对子类可见,对其他包中的类不可见。

(三)default

同一个项目中,对同一个包中的类可见,对其他包中的类不可见。

(四)private

同一个项目中,只对当前类可见。

二、static 和 this 关键字

(一)static

static 用于修饰类或方法,表示其为静态类或静态方法,在调用的过程中无需对其实例化,即可直接使用。

public class OuterSample
{
    public static void innermethod()
    {
    System.out.println("hello!");
    }

    public static void main(String[] args)
    {
    OutSample.innermethod();
    }
}

该案例中,由于方法 innermethod() 用 static 修饰,在 main 方法中调用的时候无需实例化,直接用 类名.方法名 即可调用。

(二)this

this 关键字用于指代当前对象(this 指向对类进行实例化之后的全局变量,而不是方法中定义的局部变量),比较以下三个案例:

public class OuterSample
{	
	String name="Spike";		

	public String innermethod()   
	 {    
	String name="Tom";    
	return name;    
	} 	

	public static void main(String[] args)    
	{   
 	OuterSample os1=new OuterSample();   
 	String x=os1.innermethod();   
	 System.out.println(x);   
 	}
}

本案例中没有使用 this 关键字,则调用 innermethod() 时默认使用局部变量 “Tom”。 

public class OuterSample
{	
	String name="Spike";		

	public String innermethod()   
	 {    
	String name="Tom";    
	return this.name;    
	} 	

	public static void main(String[] args)    
	{   
 	OuterSample os1=new OuterSample();   
 	String x=os1.innermethod();   
	 System.out.println(x);   
 	}
}

 本案例中,os1 为类 OuterSample 的一个实例化对象,this 关键字指向类 OuterSample 的全局变量,即 “Spike”。

public class OuterSample
{	
	String name="Spike";		

	public String innermethod()   
	 {    
	this.name="Tom";    
	return this.name;    
	} 	

	public static void main(String[] args)    
	{   
 	OuterSample os1=new OuterSample();   
 	String x1=os1.innermethod();   
	 System.out.println(x1);   

 	String x2=os1.name;
	 System.out.println(x2);
 	}
}

 本案例中,this 同样指向全局变量,但在方法中对全局变量进行了重新赋值,所以即使 this 指向全局变量,也是在方法 innermethod() 中被赋值为 “Tom” 的全局变量。而 x2 没有调用方法,this 指向的仍然是方法 innermethod() 外部的全局变量,也就是“Spike”。

三、构造方法和普通方法

(一)构造方法

① 方法名与类名相同

② 没有返回值类型

③ 不能使用 static 修饰

④ 可以有多种重载形式

(二)普通方法

普通方法名称与类名不能相同,分为静态方法和实例方法:

静态方法,使用 static 修饰符,无需对类进行实例化即可调用。

实例方法,不使用 static 修饰符,调用时需要先对类进行实例化,然后用 类名.方法名 调用。

四、方法重载和方法重写

(一)方法重载

构造方法和普通方法均可进行方法重载,也就是方法名相同,而参数数量或类型不同。

特点:同一个类,方法名相同,参数列表不同。

(二)方法重写

 方法重写发生在子类继承父类的情况下,当子类需要对父类的某些方法进行重新编写的时候,可以在子类中进行方法重写,方法名与父类的方法名相同。

特点:不在同一个类,子类重写父类的方法,方法名和参数列表均相同。

标签:innermethod,java,String,static,OuterSample,方法,public
From: https://blog.csdn.net/firstgrass/article/details/139159716

相关文章

  • JAVA计算机毕业设计基于springboot的在线考试系统(附源码+springboot+开题+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的快速发展和普及,教育领域对信息技术的应用越来越广泛。在线考试系统作为教育信息化的一种重要形式,已经逐渐成为了现代教育管理的重要组......
  • Java学习笔记(二)
    Java学习笔记(二)快捷方法生成psvm>>publicstaticvoidmain(String[]args){}main>>publicstaticvoidmain(String[]args){}sout>>System.out.println();i.sout>>System.out.println(i);i.soutv>>System.out.println("i=&......
  • Java基础(I/O)
    一、File类1.1File类概述I/O(Input/Output)指应用程序对设备的数据输入/输出。负责输入/输出的类都位于java.io包中。File类中的java.io包是唯一代表磁盘本身文件的对象,定义了一些与平台无关的方法用于操作文件。常用构造方法如下图。常用方法如下图。1.2遍历目录下的......
  • Java基础(集合)
    一、集合概述集合:可以存储任意类型的对象,并且长度可变的类集合类位与java.util包中集合类的继承体系如下图。二、Collection接口Collection是所有单列集合的父接口,定义了单列集合通用的一些方法,常用方法如下图。开发中基本使用其子接口。三、List接口3.1List接口简介......
  • java顺序结构,循环结构,选择结构,增强for循环,switch穿透现象,值匹配
    顺序结构inta=10;intb=20;intc=a+b;System.out.println(c);//按顺序执行循环结构一、For循环格式for(初始化语句;循环条件;迭代语句){循环语句体;}for(inti=0;i<5;i++){System.out.println("我爱你");}int[]is={1,2,3};for(inti=0;i<is.l......
  • java数组一篇文章搞定
    Array数组数组(Array) 是一种线性数据结构,它用一组连续的内存空间来存储一组具有相同类型的数据。这些数据可以是整数、浮点数、字符、对象等,但必须是同一种类型。数组中的每个数据元素都有一个唯一的索引值,这个索引值通常从0开始,用于访问或修改该元素。数组基本特点:1.长度......
  • Java中的变量分类(按照位置分类)
    变量按位置分通过上面类的建立我们又得到了新的概念:成员变量和局部变量成员变量:可以使用基本数据类型,也可以使用引用数据类型.java中的变量在使用时必须初始化,成员变量可以不对其初始化,系统会对其默认初始化为null或0;成员变量可以在成员方法,构造方法,代码块中使用补:成......
  • Docker Java项目部署
    将你的java项目打包为一个jar包准备Dockerfile文件#设置本镜像需要使用的基础镜像FROMjava:8#把jar包添加到镜像中ADDyylq-ds.jar/app.jar#镜像暴露的端口EXPOSE8199RUNbash-c'touch/app.jar'#容器启动命令ENTRYPOINT["java","-jar","/app.......
  • MYSQL满足条件函数里放查询最大函数的方法
    1.MYSQL满足条件函数里放查询最大函数的方法在MySQL中,如果我们想要在一个条件函数(如CASE)内部使用聚合函数(如MAX)来获取某个字段的最大值,我们通常需要在外部查询或子查询中执行这个聚合操作,并将结果作为参数传递给条件函数。以下是一个具体的代码示例,假设我们有一个名为sales的表,......
  • javaSwing+JDBC+mysql校园跑管理项目(附源码下载)
    1.数据准备DELETEFROMstudents;Deletefromrunning;INSERTINTOstudents(student_id,name,age,major,grade)VALUES(1,'王小明',20,'计算机科学与技术','男'),(2,'张小红',21,'软件工程','女'),(3......