Java对象

本文详细介绍了Java中对象的概念,包括对象与类的关系,如何通过new关键字创建对象,以及对象在不同类中调用实例变量、静态成员变量、构造方法、实例方法和静态方法的情况。此外,还涵盖了方法的参数传递和接收返回值的关键点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、java中的对象

        处理当前类与其他类之间的关系,需要使用对象,什么是对象呢?对象是通过java类创建的用来在其他类中调用创建对象的java类中的变量和方法的具体元素。

public class Student {
    //实例变量
    public  String name="zhangsan";
    //实例方法
    public  void  sayHello(){
        System.out.println("Student类中的实例方法");
    }
}
public class Person {
    public  void  personShiLi(){
        System.out.println("Person类中的实例方法");
        //如果要在person类的方法中使用Student类的变量和方法,
        //需要创建Student类对象来调用Student类中的变量和方法
        //通过new这个关键字使用java类构造方法创建类的对象
        //为了方便使用这个对象,可以定义该类的变量来保存对象
        Student student=new Student();
        System.out.println("调用Student类的实例变量name=="+student.name);
        //调用Student类的方法
        student.sayHello();
    }
}

对象是由类创建的,没有类就没有对象,对象可以在其他类中访问本类中的元素。

二、创建对象

        条件:1.要有JAVA类

                   2.通过new关键字使用java类构造方法来创建当前类的对象

三、创建对象的作用

        在其他类的方法中调用创建对象的这个类中的变量/方法

四、在不同类中使用对象调用实例变量和静态成员变量

public class Cars {
    //定义一个实例变量
    public int longth = 1000;
    //定义一个静态成员变量
    static int age =29;

}
public class Flys {
    //创建一个Cars对象
    public Cars ca = new Cars();
    //赋值给Flys类中的实例变量,用类变量.Cars中实例变量名称
    public int wid = ca.longth;
    //使用Cars类中的静态成员变量
    public  static int age = Cars.age;
}
public class TestMain {
    public static void main(String[] args) {
        //创建一个Flys类的对象
        Flys fl=new Flys();
        System.out.println(fl.wid+"-----------"+Flys.age);
    }
}

五、不同类中使用对象调用构造方法、实例方法、静态方法

public class Cars {
    //定义一个实例变量
    public int longth = 1000;
    //定义一个静态成员变量
    static int age =29;
    //定义一个实例方法
    public void shiLi(){
        System.out.println("我是Cars类中的实例方法,汽车长度为:"+longth);
    }
    //定义一个构造方法
    public Cars(){
        System.out.println("我是Cars类中的构造方法");
    }
    //定义一个静态方法
    public static void staticCars(){
        System.out.println("我是Cars类中的静态方法");
    }

}
public class Flys {
   // Flys类的构造方法
    public Flys(){
        System.out.println("Flys类中的---构造方法---调用Cars类中的元素");
        //调用Cars类中的实例变量,通过变对象调用
        Cars ca1 = new Cars();
        System.out.println("Flys类中的构造方法,调用Cars类中的实例变量:"+ca1.longth);
        //调用Cars类中的静态变量,即可以通过变量,又可以通过类名调用
        System.out.println("Flys类中的构造方法,调用Cars类中的静态成员变量:"+ca1.age);
        System.out.println("Flys类中的构造方法,调用Cars类中的静态成员变量:"+Cars.age);
        //调用Cars类中的实例方法,只能通过对象调用
        ca1.shiLi();
        //调用Cars类中的静态方法,即可以通过对象调用,也可以通过类名调用
        ca1.staticCars();
        Cars.staticCars();
    }
    //Flys类的实例方法
    public void shiLiFlys(){
        System.out.println("Flys类中的---实例方法---调用Cars类中的元素");
        //创建一个Cars类的对象
        Cars ca2 = new Cars();
        //用对象调用Cars类中的实例变量
        System.out.println("Flys类中的实例方法,调用Cars类的实例变量:"+ca2.longth);
        //用对象调用Cars类中的静态成员变量
        System.out.println("Flys类中的实例方法,调用Cars类的静态成员变量:"+ca2.age);
        //用类名调用Cars类中的静态成员变量
        System.out.println("Flys类中的实例方法,调用Cars类的静态成员变量:"+Cars.age);
        //用对象调用Cars类中的实例方法
        ca2.shiLi();
        //用对象调用Cars类中的静态方法
        ca2.staticCars();
        //用类名调用Cars类中的静态方法
        Cars.staticCars();

    }
    //Flys类的静态方法
    public static  void staticFlys(){
        System.out.println("Flys类中的---静态方法---调用Cars类中的元素");
        //调用Cars类中的实例变量,通过变对象调用
        Cars ca3 = new Cars();
        System.out.println("Flys类中的静态方法,调用Cars类中的实例变量:"+ca3.longth);
        //调用Cars类中的静态变量,即可以通过变量,又可以通过类名调用
        System.out.println("Flys类中的静态方法,调用Cars类中的静态成员变量:"+ca3.age);
        System.out.println("Flys类中的静态方法,调用Cars类中的静态成员变量:"+Cars.age);
        //调用Cars类中的实例方法,只能通过对象调用
        ca3.shiLi();
        //调用Cars类中的静态方法,即可以通过对象调用,也可以通过类名调用
        ca3.staticCars();
        Cars.staticCars();
    }
}
public class TestMain {
    public static void main(String[] args) {
       //创建一个Flys类的对象
        Flys fl=new Flys();
        //用对象调用Flys类的实例方法
        fl.shiLiFlys();
        //用类名调用Flys类的静态方法
        Flys.staticFlys();
    }
}

总结:

          其他类的方法中访问另一个类的构造方法--使用关键字new
          访问另一个类的实例方法/实例变量--使用对象
          访问另一个类的静态方法/静态成员变量--使用类名/对象

六、不同类中调用有参数的方法

        传递参数有两个重点:

                        1.看方法有没有参数,有几个参数,参数的数类型是什么

                        2.传参-----两种方式(值传递/变量传递)

public class Park {
    //定义Park类中的无参数的构造方法
    public Park(){
        System.out.println("我是Park类中的无参数的构造方法");
    }
    //定义Park类的有参数的构造方法
    public Park(int width){
        System.out.println("我是Park类有一个参数的构造方法,我的参数是:"+width);
    }
    //定义Park类的有两个参数的构造方法
    public Park(int width,String name){
        System.out.println("我是Park类有两个参数的构造方法,我的长度是:"+width+",我的名字是:"+name);
    }
    //定义Park类的有一个参数的实例方法
    public void parkShiLi(String name){
        System.out.println("我是Park类有一个参数的实例方法,我的参数是:"+name);
    }
    public void parkShiLi1(String name,double rongliang){
        System.out.println("我是Park类有两个参数的实例方法,我的参数是:"+name+",我的容量是:"+rongliang);
    }
    //定义Park类的有参数的静态方法
    public static void staticParkFangFa(double pingfang,int rongliang){
        System.out.println("我是Park类有两个参数的静态方法,我的面积是:"+pingfang+"平方米,我能容纳:"+rongliang+"人");
    }
}
public class TestMain {
    public static void main(String[] args) {
        //访问Park类中有参数的构造方法
        //创建一个Park类的对象
        Park pa = new Park(10000);
        new Park(10003,"大雁塔");
        //访问Park类中的有参数的实例方法
        Park pa1 = new Park();
        pa1.parkShiLi("长安广场");
        pa1.parkShiLi1("万科广场",8848.32);
        //用对象调取Park类中的有参数的静态方法
        pa1.staticParkFangFa(109323.33,19988392);
        //用类名调用Park类中的有参数的静态方法
        Park.staticParkFangFa(773828.23,877237823);
    }
}

七、接收有返回值的方法

        用与返回值同类型的变量接收

public class Man {
    //定义一个有返回值的实例方法
    public int manShiLi(){
        System.out.println("我是Man类的有int型返回值的无参数的实例方法");
        return 1;
    }
    //定义一个有返回值,有一个参数的实例方法
    public String manShiLi1(int age){
        System.out.println("我是Man类的有String型返回值的有一个参数的实例方法,参数为:"+age);
        return "ok";
    }
    //定义一个有返回值,两个参数的实例方法
    public boolean manShiLi2(String name,int age){
        System.out.println("我是Man类的有boolean型返回值的有两个参数的实例方法,我叫:"+name+",今年:"+age);
        return true;
    }
    //定义一个有返回值,没有参数的静态方法
    public static float staticFangFa(){
        System.out.println("我是Man类的有float型返回值的没有参数的静态方法");
        return 1.0f;
    }
    //定义一个有返回值,有一个参数的静态方法
    public static long staticFangFa1(long tel){
        System.out.println("我是Man类的有long型返回值的有一个参数的静态方法,我的电话是:"+tel);
        return 23443434324L;
    }
    //定义一个有返回值,有两个参数的静态方法
    public static String staticFangFa2(int age,String address){
        System.out.println("我是Man类的有String型返回值的有两个参数的静态方法,我今年:"+age+"岁,我住在:"+address);
        return "真实";
    }
}
public class TestMain {
    public static void main(String[] args) {
        //创建一个Man对象
        Man re = new Man();
        //用Man实例方法同类型的变量接收实例返回值
        int res = re.manShiLi();
        System.out.println(res);
        String res1 = re.manShiLi1(23);
        System.out.println(res1);
        int myage = 34;
        String res2 = re.manShiLi1(myage);
        System.out.println(res2);
        boolean res3 = re.manShiLi2("张三",34);
        System.out.println(res3);
        //用Man实例方法同类型的变量接收静态方法的返回值
        float statre = Man.staticFangFa();
        System.out.println(statre);
        long lres = Man.staticFangFa1(18767662773L);
        System.out.println(lres);
        String stringres = Man.staticFangFa2(37,"西安雁塔区");
        System.out.println(stringres);
    }
}

总结,不同Java类之间,变量和方法调用情况:

        1.实例变量只能对象访问,静态成员变量既可以对象访问,也可以类名访问

        2.构造方法通过 new +构造方法访问,实例方法只能通过对象访问,静态方法既可以通过对象访问,也可以通过类名访问

        3.方法参数值传递,要什么,给什么,注意参数个数和数据类型一致

        4.返回值接收,用与方法返回值类型 相同的变量进行接收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值