调用java中的类
时间:2021-08-01
本文章向大家介绍调用java中的类,主要包括调用java中的类使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.Java中,类中的静态方法不能直接调用动态方法。只有将某个内部类修饰为静态类,然后才能够在静态类中调用该类的成员变量与成员方法。
加了static就是静态类了
2.调用非静态方法:没有使用static修饰符修饰的方法,就是非静态方法,调用这种方法的时候是一定要使用对象的。因为非静态方法是属于对象的。
非静态属性也一样
3.在一个类中,静态方法之间可以相互调用,非静态方法之间也可以相互调用,非静态方法可以调用静态方法,静态方法不能调用非静态方法
4.java中调用非静态方法要先把类赋值给对象,没有定义类的话就把当前创建java函数文件名当作类,赋值方法是:类名 变量名=new 类名()
5.调用静态方法直接类名加方法()
6.值传参和引用传参
调用方法进行传参时,分为值传递和引用传递两种。
如果参数的类型是基本数据类型,那么就是值传递。
如果参数的类型是引用数据类型,那么就是引用传递。
值传递是实参把自己变量本身存的简单数值赋值给形参.
引用传递是实参把自己变量本身存的对象内存地址值赋值给形参.
所以值传递和引用传递本质上是一回事,只不过传递的东西的意义不同而已.
7.this关键字
在类中,this关键字可以起到一些特殊作用
【区别成员变量和局部变量】 //其实这个不太理解
【调用类中的其他方法】 //这个也可以说明this在类中表示当前类将来创建出的对象.
【调用类中的其他构造器】
import java.io.IOException;
public class object_oriented { //非静态类
/*Java中,类中的静态方法不能直接调用动态方法。
只有将某个内部类修饰为静态类,
然后才能够在静态类中调用该类的成员变量与成员方法。
加了static就是静态类了 */
public static void main(String[] args) {
//从代码运行角度考虑是先有类后又对象
// 类是对象的模板
//调用非静态方法:没有使用static修饰符修饰的方法,就是非静态方法
// 调用这种方法的时候是一定要使用对象的。因为非静态方法是属于对象的。
// 非静态属性也一样
Student m = new Student();
m.print("java中调用非静态方法要先把类赋值给对象,没有定义类的话就把当前创建java函数文件名当作类,赋值方法是:类名 变量名=new 类名()");
// 调用静态方法直接类名加方法()
int a11 = Student.max(4, 2);
System.out.println("调用静态方法直接类名加方法()"+a11);
//值传参
int a = 1;
System.out.println("before: a = "+a); //1
Student.changeNum(a);
System.out.println("after: a = "+a); //1
//引用传递
Student1 s = new Student1(); //非静态类之间的调用,可直接用类名调用外部的类
System.out.println("before: name = "+s.name); //null
changeName(s);
System.out.println("after: name = "+s.name); //tom
}
public static void changeName(Student1 s){ //下面也有个和changeName一样的函数
s.name = "tom";
}
// this在类中的作用
public static class Student{ //加了static静态类
private String name;
public void setName(String name){
//this.name表示类中的属性name
this.name = name; // 【区别成员变量和局部变量】
}
public void print1(){
//表示调用当前类中的setName方法
this.setName("tom"); //【调用类中的其他方法】
//默认情况下,setName("tom")和this.setName("tom")的效果是一样的
}
//下面这2句是java中的构造器
// 调用类中的其他构造器
public Student(){
//调用一个参数的构造器,并且参数的类型是String
this("tom"); ////并且这局调用的代码只能出现在构造器// 中的第一句.
} //this的这种用法,只能在构造器中使用.普通的方法是不能用的.
public Student(String name){
this.name = name;
}
// this在类中表示当前类将来创建出的对象.
public static int max(int a,int b){ //静态类中可有静态方法,非静态方法
int c = a>b?a:b;
System.out.println(c);
return a>b?a:b;
}
public static void changeNum(int a){
a = 10;
System.out.println("这个changNum中的值会被外界相同得变量改变么是10么:"+a);
}
public String sayHello(){
return "hello";
// print("sss");
}
public void print(String msg){
System.out.println(msg);
sayHello();
/* 在一个类中,静态方法之间可以相互调用,非静态方法之间也可以相互调用
非静态方法可以调用静态方法,静态方法不能调用非静态方法 */
}
//异常抛出类型
// public void readFile(String file)throws IOException{
// } //不能同时使用两个相同的方法
public void readFile(String file)throws IOException,ClassNotFoundException{}
}
}
class Student1{
String name;}
努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
原文地址:https://www.cnblogs.com/wkhzwmr/p/15086802.html
- 野外动物监测图像挑战赛:预测捕捉到的野外图像是否包含动物
- Github 项目推荐 | 用 Keras 实现的神经网络机器翻译
- Github 项目推荐 | 类 Keras 的 PyTorch 深度学习框架 —— PyToune
- Github 项目推荐 | 可提取结构化信息的自然语言理解 Python 库 Snips NLU
- 工具| 诸神之眼nmap定制化之并发处理
- 确认过眼神,ZZCMS 8.2 任意文件删除是你想要的
- golang go语言 http包 和 高并发下的websocket
- Golang学习-第一篇 Golang的简单介绍及Windows环境下安装、部署
- 兄dei ! 请接住FineCMS的GetShell姿势
- 剖析Go的读写锁
- 工具| PocSuite 使用介绍
- 一日一学_Go语言Context(设计及分析)
- golang-xorm库快速学习
- 【文末有惊喜】初探Go的编译命令执行过程
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释