13、JAVA入门——对象和类

简介: 13、JAVA入门——对象和类

一、对象


1、面向对象

(1)Java语言是一种面向对象的语言。


(2)面向对象的思想是把问题看成是由若干个对象组成,这些对象之间是独立的,但又可以相互配合、连接和协调,从而共同完成整个程序要实现的任务和功能。


(3)面向对象的三大特征:封装、继承和多态。


2、对象解释

(1)对象是用来描述客观事物的一个实体。


(2)用面向对象方法解决问题时,要对现实世界中的对象进行分析和归纳,找出哪些对象与要解决的问题是相关的。

       (3)万事万物皆对象

3、 创建对象

(1)类是一类事物的集合和抽象,代表这类事物公有的属性和行为(方法)。


(2)一个对象成为类的一个实例,是类一次实例化的结果。


(3)类的对象可以调用类中的成员,如属性和方法等。


创建对象的语法格式如下:


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


       -->new是关键字


       -->左边的类名为对象的数据类型。


       -->右边的类名()成为类的构造方法。


 //类名 对象名 = new 类名();

 School school1 = new School();


4、使用对象

在Java中,要引用对象的属性和方法,需要使用“.”。


使用对象的语法格式如下:


       对象名.属性 [= 属性值]; //引用对象的属性


       对象名.方法名(); //引用对象的方法


 例子:创建SchoolTest类,使用School类对象方法如下


public class SchoolTest {
  public static void main(String[] args) {
  //创建School类对象
  //类名 对象名 = new 类名();
  School school1 = new School();
  //给对象的属性赋值  对象名.属性名 = 数据;
  school1.schoolName = "魔法学院";
  school1.address = "安徽合肥";
  school1.year = 100;
  school1.phoneNumber = "13822556677";
  //对象调用方法  对象名.方法名();
  school1.printInfo();
  }
}


5、 对象数组

(1)对象数组的数据类型就是具体的类名,对象数组存储的就是这个类的对象,每个数组元素就是一个对象。


(2)根据数组下标找到某个元素时,按照对象的使用方法来使用该元素。


       类名[] 数组名 = {对象1,对象2,···,对象n};



面向对象的优点如下:


       (1)与人类的思维习惯一致:面向对象的思维方式是从人类考虑问题的角度出发,把人类解决问题的思维过程转变为程序能够理解的过程。面向对象程序设计使用“类”来模拟现实世界中的抽象概念,用“对象”来模拟现实世界中的实体,从而用计算机解决现实问题。


       (2)信息隐藏,提高了程序的可维护性和安全性:封装实现了模块化和信息隐藏,即将类的属性和行为封装在类中,这保证了对它们的修改不会影响到其他对象,利于维护。同时,封装使得在对象外部不能随意访问对象的属性和方法,避免了外部错误对它的影响,提高了安全性。


       (3)提高了程序的可重用性:一个类可以创建多个对象,体现了重用性。


二、类


1、类解释

(1)类是具有相同属性和方法的一组对象的集合。


(2)类定义了对象将会拥有的特征(属性)和行为(方法)。


(3)类和对象的关系就是抽象和具体的关系。类是多个对象进行综合抽象的结果,是实体对象的概念模型,而一个对象是一个类的实例。


面向对象设计的过程就是抽象的过程,一般分为3步来完成。


(1)发现类,类定义了对象将会拥有的特征(属性)和行为(方法)。


(2)发现类的属性,对象所拥有的静态特征在类中表示时称为类的属性。


(3)发现类的方法,对象执行的操作称为类的方法。



2、 定义类

定义类的语法格式如下:


       [访问修饰符] class 类名{


               //类的内部代码


       }


       -->访问修饰符如public、private、protected、等是可选的。


       -->class是声明类的关键字。


       -->按照命名规范,类名首字母大写。


例子:定义一个School类


public class School {
  //内部代码
}


3、 属性

Java中类的内部主要包含属性和方法。对象所拥有的特征在类中表示时称为类的属性。


定义属性的语法格式如下:


       [访问修饰符] 数据类型 属性名 [= 属性值];


       -->访问修饰符时可选的。


       -->除了访问修饰符之外,其他的语法和声明变量类似。


 例子:在School类中定义相关属性


//定义属性: 数据类型 属性名;
  String schoolName;
  String address;
  int year;
  String phoneNumber;


4、 方法

       对象执行操作的行为称为类的方法。


       定义方法的语法格式如下:


       [访问修饰符] 返回类型 方法名称(参数类型 参数名1,参数类型 参数名2,...,参数类型 参数名n){


               //方法体代码


       }


 例子:School类中定义了printInfo()方法


public class School {
  //定义属性: 数据类型 属性名;
  String schoolName;
  String address;
  int year;
  String phoneNumber;
  //定义方法
  public void printInfo(){
  System.out.println("学校名称:"+schoolName+",地址:"+address+",创办年数:"+year+",联系电话:"+phoneNumber);
  }
}


       -->访问修饰符是可选的。


       -->返回类型可以是void,在定义方法时,返回类型为void时表示没有返回值,方法体中不必使用“return”关键字返回具体数据,但是可以使用“return”关键字退出方法。


       -->返回类型如果不是“void”,那么在方法体中一定要使用“return”关键字返回对应类型的结果,否则程序会出现编译错误。


       -->小括号中的“参数类型 参数名1,参数类型 参数名2,...,参数类型 参数名n”称为参数列表。


       -->当需要在方法执行的时候为方法传递参数时才需要参数列表,如果不需要传递参数就可以省略,不过小括号不可以省略,传递多个参数时,以半角的逗号进行分隔。


5、方法分类

(1)方法按照有无参数分为:


       无参方法


       有参方法


(2)方法按照有无返回值分为:


       无返回值的方法


       有返回值的方法


(3)综上所述方法分为:


       无返回值的无参方法


       无返回值的有参方法


       有返回值的无参方法


       有返回值的有参方法


 例子:定义一个Demo01类,添加以上四种方法;


public class Demo01 {
  //无返回值的无参方法
  public void test1(){
  System.out.println("我是没有返回值的方法");
  }
    //有返回值的无参方法
  public String test2(){
  String str = "hello java";
  return str;
  }
  //无返回值的有参方法
  public void test3(int num1,int num2){
  System.out.println("你传递的两个参数数据是:"+num1+","+num2);
  }
  //有返回值的有参方法
  public int test4(int num1,int num2,int num3){
  return num1+num2+num3;
  }
}


 定义一个Demo01Test类,来使用上面的Demo01类对象,和方法:


public class Demo01Test {
  public static void main(String[] args) {
  //创建Demo01的对象,通过对象来调用Demo01类中的test1()和test2()方法
  Demo01 d1 = new Demo01();
  d1.test1();
  String result =d1.test2();
  System.out.println(result);
  System.out.println(d1.test2());
  d1.test3(10, 20);
  int a =100;
  int b =200;
  //调用有参方法的时候,传递的a和b是实际参数,简称实参,形参和实参的名称不需要一样,但是数据类型要一样
  d1.test3(a, b);
  int result2 =d1.test4(100, 200, 185);
  System.out.println(result2);
  System.out.println(d1.test4(10, 20, 30));
  }
}
相关文章
|
20小时前
|
Java
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
【Java多线程】面试常考 —— JUC(java.util.concurrent) 的常见类
7 0
|
21小时前
|
Java API 调度
【Java多线程】Thread类的基本用法
【Java多线程】Thread类的基本用法
5 0
|
1天前
|
Java API 开发工具
java与Android开发入门指南
java与Android开发入门指南
8 0
|
1天前
|
Java
Java一分钟之-类与对象:面向对象编程入门
【5月更文挑战第8天】本文为Java面向对象编程的入门指南,介绍了类与对象的基础概念、常见问题及规避策略。文章通过代码示例展示了如何定义类,包括访问修饰符的适当使用、构造器的设计以及方法的封装。同时,讨论了对象创建与使用时可能遇到的内存泄漏、空指针异常和数据不一致等问题,并提供了相应的解决建议。学习OOP需注重理论与实践相结合,不断编写和优化代码。
17 1
|
2天前
|
Java 编译器 对象存储
java一分钟之Java入门:认识JDK与JVM
【5月更文挑战第7天】本文介绍了Java编程的基础——JDK和JVM。JDK是包含编译器、运行时环境、类库等的开发工具包,而JVM是Java平台的核心,负责执行字节码并实现跨平台运行。常见问题包括版本不匹配、环境变量配置错误、内存溢出和线程死锁。解决办法包括选择合适JDK版本、正确配置环境变量、调整JVM内存参数和避免线程死锁。通过代码示例展示了JVM内存管理和基本Java程序结构,帮助初学者更好地理解JDK和JVM在Java编程中的作用。
15 0
|
3天前
|
Java 开发者
在Java中,接口和超类在多态性中扮演着重要的角色
Java中的接口和超类支持多态性,接口作为规范,允许多继承和回调机制;超类提供基类,实现代码重用和方法重写,两者共同促进代码的灵活性和可维护性。
25 10
|
3天前
|
Java
Java并发Futures和Callables类
Java程序`TestThread`演示了如何在多线程环境中使用`Futures`和`Callables`。它创建了一个单线程`ExecutorService`,然后提交两个`FactorialService`任务,分别计算10和20的阶乘。每个任务返回一个`Future`对象,通过`get`方法获取结果,该方法会阻塞直到计算完成。计算过程中模拟延迟以展示异步执行。最终,打印出10!和20!的结果。
|
7月前
|
Java 编译器
【Java学习笔记】 对象和类
【Java学习笔记】 对象和类
|
2月前
|
Java
【Java】— —实现人物对象的增、删、改、查(注:对象的删除以逻辑删除为主,在person类中设置“删除状态字段”,字删除该字段时,将状态改为有效。)
【Java】— —实现人物对象的增、删、改、查(注:对象的删除以逻辑删除为主,在person类中设置“删除状态字段”,字删除该字段时,将状态改为有效。)
35 0
|
4月前
|
分布式计算 Java 大数据
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
IO流【Java对象的序列化和反序列化、File类在IO中的作用、装饰器模式构建IO流体系、Apache commons-io工具包的使用】(四)-全面详解(学习总结---从入门到深化)
54 0