JAVA 对象、类、静态的概念及方法的调用

一、 方法是什么?类是什么?对象是什么?静态又是什么?

挖坑
填坑
有些关于概念的专业表述还是需要了解透彻的:

是构造对象的模板或蓝图。 由类构造对象的过程称为创建类的实例
封装,(更形象地说)又称数据隐藏。封装将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。 对象中的数据称为实例域,操纵数据的过程称为方法。 每个类实例(即对象)的实例域值的集合称作这个对象的当前状态

实现封装的关键在于:不能让类中的方法直接地访问其他类的实例域。程序仅通过对象的方法与对象数据进行交互
封装给对象赋予了类似“黑盒”的特性,这是提高重用性和可靠性的关键。 在Java中,所有的类都源自于一个“超类”——Object
通过拓展一个类来建立另一个类的过程称为继承(inheritance)。在拓展一个已有的类的时候,这个拓展后的新类具有所拓展的类的全部属性和方法(当然还有适用于这个新类的新数据域和新方法)。

对于只学习过面向过程程序设计(POP)——C语言就是一门典型的面向过程程序语言——的人而言,刚接触面向对象程序设计(OOP)时需要清楚对象的三个主要特性:

  1. 对象的行为——可以对对象施加哪些操作/方法?
  2. 对象的状态——当对对象施加方法时,对象如何响应?
  3. 对象标识——如何辨别具有相同行为和状态的不同对象?

对于同一个类的所有对象实例,它们都支持相同的行为,具有相似性。对象的行为是由可调用的方法定义的。

每个对象都保存着描述当前特征的信息,即对象的状态。对象状态的改变必须经方法的调用才能实现,并不会自发进行(当然了,除非封装性遭到了破坏)。
每个对象的状态常常存在差异,对象们的标识则永远是不同的

二、静态方法调用其他方法

1.静态方法调用非静态方法

  • 无论是否在同一类中,都需要通过对象调用
public class TestScanner {
	public static void main(String[] args){
  		Son son1 = new Son();
  		son1.print9By9();
  		//静态方法main调用不同类非静态方法print9By9	
  		TestScanner son2 = new TestScanner() ;
  		son2.printNineByNine();
  		//静态方法main调用同类非静态方法print9By9   	
  	}
  	void printNineByNine(){	//同类非静态方法:打印9x9乘法表
 		int j;
  		for(int i = 1;i < 10;i++){
   			j = 1;
   			for(int k = 0;k < i;k++){
    				System.out.print(i+"*"+j+"="+i*j+"\t");
    				j++;
    			}
      			System.out.println();
 		}
   	}
 }
public class Son {
 
 	public void print9By9(){	//不同类非静态方法:打印9x9乘法表
 		int j;
  		for(int i = 1;i < 10;i++){
   			j = 1;
   			for(int k = 0;k < i;k++){
    				System.out.print(i+"*"+j+"="+i*j+"\t");
    				j++;
    			}
      			System.out.println();
 		}
   	}
}

2.静态方法调用静态方法

  • 同一类中直接调用
  • 不同类通过 类名.方法名 进行调用
public class TestScanner {
	public static void main(String[] args){
  		printNineByNine();
  		//静态方法main调用同类静态方法printNineByNine
  		Son.print9By9();	
  		//静态方法main调用不同类静态方法print9By9   	
  	}
  	static void printNineByNine(){	//同类静态方法:打印9x9乘法表
 		int j;
  		for(int i = 1;i < 10;i++){
   			j = 1;
   			for(int k = 0;k < i;k++){
    				System.out.print(i+"*"+j+"="+i*j+"\t");
    				j++;
    			}
      			System.out.println();
 		}
   	}
 }
public class Son {
 
 	public static void print9By9(){	//不同类静态方法:打印9x9乘法表
 		int j;
  		for(int i = 1;i < 10;i++){
   			j = 1;
   			for(int k = 0;k < i;k++){
    				System.out.print(i+"*"+j+"="+i*j+"\t");
    				j++;
    			}
      			System.out.println();
 		}
   	}
}

三、非静态方法调用其他方法

1.非静态方法调用同一类方法

  • 直接调用
代码:略

2.非静态方法调用不同一类方法

  • 调用静态方法:通过对象调用(建议通过类名调用)
  • 调用非静态方法:通过对象调用
代码:略
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值