java - 在Java中,为什么我们需要一个对象来调用同一个类的主函数中的一个函数,而不需要一个对象来调用非主函数的其他函数?
问题描述
我想举个例子:
1 public class Ticket
2 {
3 private int ticketid;
4 private int price;
5 private int availableTickets;
6 public void setTicketid(int ticketid)
7 {
8 this.ticketid=ticketid;
9 }
10 public void setPrice(int price)
11 {
12 this.price=price;
13
14 }
15 public void setAvailableTickets(int availableTickets)
16 {
17 if(availableTickets>0)
18 {
19 this.availableTickets=availableTickets;
20 }
21 }
22 public int getTicketid()
23 {
24 return ticketid;
25 }
26 public int getPrice()
27 {
28 return price;
29 }
30 public int getAvailableTickets()
31 {
32 return availableTickets;
33 }
34 public int calculateTicketCost(int nooftickets)
35 {
36
37 int at=getAvailableTickets();
38 int ans;
39 int p;
40 if(nooftickets<at)
41 {
42 at=at-nooftickets;
43 setAvailableTickets(at);
44 p=getPrice();
45 System.out.println(p+"p");
46 ans=nooftickets*p;
47 return ans;
48
49 }
50 else
51 {
52 return -1;
53 }
54 }
55 }
为什么我们可以在 calculateTicketCost() 函数中使用getAvailableTickets()
、setAvailableTickets()
和getPrice()
不使用对象,但是如果我们在 main 方法中尝试这些方法而不是 calculateTicketCost(),我们将需要一个对象来使用这三个函数。
请告诉我为什么不需要一个对象。打字机。
解决方案
因为主方法在类之外,所以你必须创建一个类的实例,你可以使用它来访问类的方法
如果你的 main 方法在类中,你可以使用 main 方法中的方法而不创建对象,但你的方法必须是static
还要检查这个请Java OOP
推荐阅读
- c# - 将锯齿状数组写入二进制文件会产生与写入具有相同值的多维数组不同的结果吗?
- javascript - 未读取本地主机 JSON 文件
- python - 访问通过套接字从客户端发送到服务器的类对象数据
- woocommerce - 在邮政编码限制下始终允许在 WooCommerce 中本地取货
- node.js - dialogflow webhook 不考虑使用fulfillmentText、fulfillmentMessages 的有效负载
- python-3.x - 如何将生成器与 JSON 树合并
- wix - 使用相对路径在 WiX 安装程序中创建符号链接
- javascript - 如何调整文本大小以适合容器
- c++ - std::bind 与可变参数模板和自动返回类型
- jsonschema - jsonschema中的items和properties有什么区别?