面向对象 java静态方法与非静态方法的调用 值传递 引用传递
面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系
统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽
象的方法,是计算机编程技术发展到一定阶段后的产物。
面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近
事物的自然运行模式。
JAVA类方法的调用
一、静态方法调用其他方法:
1. 静态方法调用非静态方法
2.静态方法调用静态方法
二、非静态方法调用其他方法
1.非静态方法在同一类内调用其他方法
2.非静态方法在不同类之间调用其他方法
注:调用方法——调用另一方法的方法
被调用方法——被调用的方法
public class Student {
//学生类里定义两个方法,一个是静态方法,一个是动态方法
//这个是静态方法 使用static关键字修饰
public static void fun1(){
System.out.println("静态方法被调用了");
}
//动态方法
public void fun2(){
System.out.println("非静态方法被调用了");
}
}
public class Test {
public static void main(String[] args) {
//在这个测试类里调用Student的方法
//调用静态方法
//静态方法的调用可以直接类名.方法
Student.fun1();
//动态方法的调用需要实例化对象
Student student = new Student();
student.fun2();
}
public void a(){
}
public void b(){
a();//在该方法中是直接可以调用a方法的,他们属于同一个类
}
public void c(){
}
public static void d(){
// c();这种调用是错误的,此处静态方法不能直接调用动态方法
}
}
public class Demo01 {
public static void main(String[] args) {
//直接调用
int add = Demo01.add(1, 3);
System.out.println(add);
//实例化对象
Demo01 demo01 = new Demo01();
demo01.add2(1,3);
}
//形参和实参
//静态的方法
public static int add(int a,int b){
return a+b;
}
//非静态的方法
public int add2(int a,int b){
return a+b;
}
}
public class Demo02 {
//值传递
public static void main(String[] args) {
int a = 1;
System.out.println(a);
Demo02.fun(a);
System.out.println(a);//输出值依然是1
}
public static void fun(int a){
a=10;
}
}
//引用传递 传递的其实是一个对象,本质还是值传递
public class Demo03 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name);//输出为null
Demo03.change(person);
System.out.println(person.name);//输出为lqx
}
//定义一个方法
public static void change(Person person){
person.name = "lqx";
}
}
class Person{//创建一个Person类,里面有一个属性
String name;
}
//引用传递 传递的其实是一个对象,本质还是值传递
public class Demo03 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name);//输出为null
Demo03.change(person);
System.out.println(person.name);//输出为lqx
}
//定义一个方法
public static void change(Person person){
person.name = "lqx";
}
}
class Person{//创建一个Person类,里面有一个属性
String name;
}