Java学习笔记----类与对象

基本定义:类是由属性和方法组成的。属性中定义类一个个具体信息,实际上一个属性就是一个变量;而方法是一些操作的行为,但是在程序设计中,定义类也要按照具体的语法要求完成

类的定义语法如下:

class 类名称{
    数据类型 属性(变量) ;
    ...

    public 返回值的数据类型 方法名称(参数1, 参数2...){
        程序语句 ;
        [return 表达式;
}
}

定义一个类:

class Book{
    String title;
    double price;
    /**
     * 输出对象完整信息
     */
    public void getInfo(){      //此方法由对象调用,因此不需要添加关键词static
        System.out.println("图书名称:" + title + "; 价格:" + price);
    }
}

注:在主类中定义,并且由主方法直接调用的方法必须加上static

☆类定义完成后,需要依靠对象才能使用;对象的产生格式如下:

1.声明并实例化对象

类名称  对象名称  =  new  类名称()

2.分步完成

声明对象:       类名称  对象名称  =  null;

实例化对象:   对象名称 =  new  类名称()

例.在主类中使用这个Book类

  • 对象.属性:表示要操作类中的属性内容
  • 对象.方法:表示要调用类中的方法
public class TestDemo{
    public static void main(String args[]){
        Book bk = new Book();   //声明并实例化对象
        bk.title = "Java开发";  //操作属性内容
        bk.price = 89.9;       //操作属性内容
        bk.getInfo();          //调用类中的getInfo()方法
    }
}
class Book{
    String title;
    double price;
    /**
     * 输出对象完整信息
     */
    public void getInfo(){      //此方法由对象调用,因此不需要添加关键词static
        System.out.println("图书名称:" + title + "; 价格:" + price);
    }
}
图书名称:Java开发; 价格:89.9

引用数据初步分析:一块堆内存空间(保存对象的属性信息)可以同时被多个栈内存共同指向,每一个栈内存都可以修改同一块内存空间的属性值

例.声明两个对象

public class TestDemo{
    public static void main(String args[]){
        Book bkA = new Book();   //声明并实例化对象
        Book bkB = new Book();
        bkA.title = "Java开发";  //操作属性内容
        bkB.title = "JSP";
        bkA.price = 89.9;       //操作属性内容
        bkB.price = 69.9;
        bkA.getInfo();          //调用类中的getInfo()方法
        bkB.getInfo();
    }
}
class Book{
    String title;
    double price;
    /**
     * 输出对象完整信息
     */
    public void getInfo(){      //此方法由对象调用,因此不需要添加关键词static
        System.out.println("图书名称:" + title + "; 价格:" + price);
    }
}
图书名称:Java开发; 价格:89.9
图书名称:JSP; 价格:69.9

例.对象引用传递

public class TestDemo{
    public static void main(String args[]){
        Book bkA = new Book();   //声明并实例化对象
        Book bkB =null;
        bkA.title = "Java开发";  //操作属性内容
        bkA.price = 89.9;       //操作属性内容
        bkB = bkA;
        bkB.price = 69.9;
        bkA.getInfo();          //调用类中的getInfo()方法
    }
}
class Book{
    String title;
    double price;
    /**
     * 输出对象完整信息
     */
    public void getInfo(){      //此方法由对象调用,因此不需要添加关键词static
        System.out.println("图书名称:" + title + "; 价格:" + price);
    }
}
图书名称:Java开发; 价格:69.9

上述实例中,先实例化一个bkA对象,然后利用bkB = bkA,将bkB的内存指向bkA的内存空间(引用传递),因此当bkB修改属性内容时,会直接影响bkA对象的内容

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值