一、对象概念
1.对象是由我们自己定义的类来创建出来的。
2.对象实际上就是类的具体实现。
例如:修建大楼时绘制的设计图纸就是类,根据设计图纸修建起来的真实的可以住人的
大楼就是对象。
类--抽象【抽取象什么一样的东西】--模板【设计图】
对象--实现--实例【楼房】
3.没有类就没有对象
4.一个类可以创建出多个对象
5.类是对象的模板,对象是类的真实表现对象的作用
调用类中的变量和方法
二、如何创建对象【new】
1.当前类中--new+构造方法---this
2.其他类中--new+构造方法
格式 : new 构造方法( [参数值] );
例如:在本类中package com.wangxing.test1; public class duiXiang { //创建公共实例成员变量/静态变量 public String name="zhangsan"; public static int int1=1001; public duiXiang(){ new duiXiang(); //当对象在类中声明,要使用变量或方法时 System.out.println(new duiXiang().int1); System.out.println(this.int1); } }
在其他类中
package com.wangxing.test1; public class test { public static void main(String args[]){ new duiXiang(); } }
三、对象访问变量
1.局部变量在其他类中年不能访问。
2.实例变量只能对象访问
3.静态变量类名访问,可以对象访问
4.实例变量在同一个类的多个对象之间不能数据共享
静态变量在同一个类的多个对象之间能数据共享
例如:package com.wangxing.test1; public class fangWenBianLiang { //创建实例成员和静态成员 public String name="lisi"; public static int int1=1001; public fangWenBianLiang(){} //创建一个无返回值和无参实例方法 public void method1(){ //实例方法只能对象访问或者this指向这个类的对象 System.out.println("对象访问实例变量="+new fangWenBianLiang().name ); System.out.println("对象访问实例变量="+this.name ); //System.out.println("实例变量只能对象访问实例变量="+object.name ); //静态变量类名访问,可以对象访问 System.out.println("对象访问静态变量="+this.int1 ); System.out.println("对象访问静态变量="+new fangWenBianLiang().int1 ); System.out.println("对象访问静态变量="+fangWenBianLiang.int1 ); } }
test类测试对象访问
package com.wangxing.test1; public class test { public static void main(String args[]) { // 创建fangWenBianLiang类的对象 fangWenBianLiang obj1 = new fangWenBianLiang(); fangWenBianLiang obj2 = new fangWenBianLiang(); // 测试实例变量和静态变量在多个对象之间数据是否共享 // 实例变量 System.out.println("实例变量obj1.name=" + obj1.name); obj1.name = "zhangsan"; //多个对象中不能共享数据 System.out.println("实例变量obj1.name=" + obj1.name); System.out.println("实例变量obj2.name=" + obj2.name); // 静态变量 System.out.println("静态变量obj1.int1=" + obj1.int1); obj1.int1 = 1002; //多个对象中能共享数据 System.out.println("静态变量 obj1.int1=" + obj1.int1); System.out.println("静态变量 obj2.int1=" + obj2.int1); } }
四、对象访问方法
1.构造方法的访问--new
2.实例方法只能对象访问
3.静态方法类名访问,可以对象访问
4.有参数方法,需要传递参数【个数,类型】【要什么,给什么】
5.有返回值,方法体中的最后一句是return,返回的数据值要与方法的返回值类型匹配,
调用有返回值的方法需要定义变量来接收方法的返回值【给什么,收什么】
例如:package com.wangxing.test1; public class fangWenFangfa { public fangWenFangfa(){} //创建无返回值无参的实例方法 public void method1(){ System.out.println("无返回值无参的实例方法"); //this.method1(); } public String method3(int id,String name){ System.out.println("有返回值返回值有参的实例方法"); String info="id=="+id+"---"+"name=="+name; return info; } //创建无返回值无参的静态方法 public static void method2(){ System.out.println("无返回值无参的静态方法"); } }
测试类
package com.wangxing.test1; public class testFangFa { public static void main(String args[]){ //创建fangWenFangfa类的对象 fangWenFangfa fwff=new fangWenFangfa(); //实例方法只能对象访问,在同一类时可以使用this指向类对象访问实例方法 fwff.method1(); //fangWenFangfa.method1(); //静态变量,在同一类时可以使用this指向类对象访问静态方法 fwff.method2(); fangWenFangfa.method2(); //有参数方法,需要传递参数【个数,类型】【要什么,给什么】 //有返回值,方法体中的最后一句是return,返回的数据值要与方法的返回值类型匹配, // 调用有返回值的方法需要定义变量来接收方法的返回值【给什么,收什么】 String info1= fwff.method3(1001, "zhangsan"); System.out.println("对象访问有返回值参数的实例方法结果:"+info1); } }