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就可以了,主函数中调用方法时也需要定义一个变量来接受方法的返回值。


目录
相关文章
|
1月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
220 18
|
1月前
|
存储 Java 索引
用Java语言实现一个自定义的ArrayList类
自定义MyArrayList类模拟Java ArrayList核心功能,支持泛型、动态扩容(1.5倍)、增删改查及越界检查,底层用Object数组实现,适合学习动态数组原理。
86 4
|
1月前
|
IDE JavaScript Java
在Java 11中,如何处理被弃用的类或接口?
在Java 11中,如何处理被弃用的类或接口?
152 5
|
1月前
|
Java 编译器 Go
【Java】(5)方法的概念、方法的调用、方法重载、构造方法的创建
Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用方法的优点使程序变得更简短而清晰。有利于程序维护。可以提高程序开发的效率。提高了代码的重用性。方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。这种就属于驼峰写法下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。
196 4
|
1月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
141 1
|
1月前
|
Java Go 开发工具
【Java】(8)正则表达式的使用与常用类分享
正则表达式定义了字符串的模式。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
202 1
|
1月前
|
存储 Java 程序员
【Java】(6)全方面带你了解Java里的日期与时间内容,介绍 Calendar、GregorianCalendar、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。Date 类提供两个构造函数来实例化 Date 对象。第一个构造函数使用当前日期和时间来初始化对象。Date( )第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。
144 1
|
搜索推荐 Java
Java的面向对象特性主要包括封装、继承和多态
【4月更文挑战第5天】Java的面向对象特性主要包括封装、继承和多态
177 3
|
Java 开发者
Java 面向对象新视界:揭秘子类如何“继承”父类精华,再添“创新”之笔
【6月更文挑战第16天】在Java的面向对象世界,子类继承父类的特性,如`Circle`继承`Shape`,展示“is-a”关系。子类不仅保留父类的`color`和`display`方法,还添加了`radius`属性及定制的显示逻辑。这种继承与创新允许代码复用,增强灵活性和可扩展性,使得构建复杂系统变得更加高效和模块化。通过持续的继承与定制,开发者能构建出一系列独具特色的类,充分展现面向对象编程的力量。
264 57
|
Java 编译器
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
242 2
下一篇
oss云网关配置