Java面向对象——类定义及使用、方法的定义及使用

简介: Java面向对象——类定义及使用、方法的定义及使用

类的定义及使用


先看个简单的例子:

package Hello;
/**
 * 类名必须与文件名一致
 * @author Huke
 *
 */
public class Person {
  String name;//定义属性
  int age;
  /**
  * 定义方法,public是指公共权限,void是空返回值,speak是方法名,括号里面可以添加参数
  */
  public void speak(){
  System.out.println("我叫"+name+", 我今年"+age+"岁了");
  }
  public static void main(String[] args) {
  //定义一个person类对象zhangsan
  Person zhangsan;
  //实例化对象
  zhangsan=new Person();
  //给属性赋值
  zhangsan.name="张三";
  zhangsan.age=18;
  //调用对象的方法
  zhangsan.speak();
  }
}


这个例子中定义了一个简单的类Person,里面有属性name和age,还有无参方法speak;


在使用person类之前,必须先定义且实例化对象,这两个步骤一般是一起进行的;


实例化对象完之后,可以给类中的属性赋值,语法是:对象名.属性=取值;


也可以调用类中的方法,语法是:对象名.方法;


且主函数一定要写在person类里面才可以


方法的定义及使用


1.无参方法

package Hello;
public class Person {
  public void speak(){
  System.out.println("我是张三");
  }
  public static void main(String[] args) {
  Person person=new Person();
  person.speak();
  }
}


2.有参方法,姓名属性在调用方法是时候给出

package Hello;
public class Person {
  public void speak(String name){
  System.out.println(name);
  }
  public static void main(String[] args) {
  Person person=new Person();
  person.speak("张三");
  }
}


还可以添加多个参数,分别用逗号隔开

package Hello;
public class Person {
  public void speak(String name,int age){
  System.out.println("我叫"+name+", 我今年"+age+"岁了");
  }
  public static void main(String[] args) {
  Person person=new Person();
  person.speak("张三",18);
  }
}


3.比如再添加一个爱好参数,且参数不固定

package Hello;
public class Person {
  public void speak(String name,int age,String ...hobbies){
  System.out.println("我叫"+name+",我今年"+age+"岁了");
  for(String hobby:hobbies){
    System.out.println(hobby+" ");
  }
  }
  public static void main(String[] args) {
  Person person=new Person();
  person.speak("张三", 18, "游泳","唱歌","跳舞","下棋");
  }
}


4.方法的返回值:返回hobbies的个数

package Hello;
public class Person {
  public int speak(String name,int age,String ...hobbies){
  System.out.println("我叫"+name+",我今年"+age+"岁了");
  for(String hobby:hobbies){
    System.out.println(hobby+" ");
  }
  int changdu=hobbies.length;
  return changdu;
  }
  public static void main(String[] args) {
  Person person=new Person();
  int n=person.speak("张三", 18, "游泳","唱歌","跳舞","下棋");
  System.out.println("我有"+n+"个爱好");
  }
}


输出结果:


我叫张三,我今年18岁了

游泳


唱歌


跳舞


下棋


我有4个爱好


可以看到其中要获取hobbies的长度,可以将其看作数组来做操作,直接用hobbies.length就可以了,主函数中调用方法时也需要定义一个变量来接受方法的返回值。


目录
相关文章
|
12天前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
36 17
|
4天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
8天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
41 4
|
9天前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
20 2
|
13天前
|
存储 安全 Java
如何保证 Java 类文件的安全性?
Java类文件的安全性可以通过多种方式保障,如使用数字签名验证类文件的完整性和来源,利用安全管理器和安全策略限制类文件的权限,以及通过加密技术保护类文件在传输过程中的安全。
|
12天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
18 2
|
14天前
|
Java Spring
JAVA获取重定向地址URL的两种方法
【10月更文挑战第17天】本文介绍了两种在Java中获取HTTP响应头中的Location字段的方法:一种是使用HttpURLConnection,另一种是使用Spring的RestTemplate。通过设置连接超时和禁用自动重定向,确保请求按预期执行。此外,还提供了一个自定义的`NoRedirectSimpleClientHttpRequestFactory`类,用于禁用RestTemplate的自动重定向功能。
|
6月前
|
搜索推荐 Java
Java的面向对象特性主要包括封装、继承和多态
【4月更文挑战第5天】Java的面向对象特性主要包括封装、继承和多态
48 3
|
5月前
|
Java 开发者
Java 面向对象新视界:揭秘子类如何“继承”父类精华,再添“创新”之笔
【6月更文挑战第16天】在Java的面向对象世界,子类继承父类的特性,如`Circle`继承`Shape`,展示“is-a”关系。子类不仅保留父类的`color`和`display`方法,还添加了`radius`属性及定制的显示逻辑。这种继承与创新允许代码复用,增强灵活性和可扩展性,使得构建复杂系统变得更加高效和模块化。通过持续的继承与定制,开发者能构建出一系列独具特色的类,充分展现面向对象编程的力量。
152 57
|
4月前
|
Java 编译器
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类