java面向对象基础编程题,

  java面向对象基础编程题,

  

目录

什么是面向对象的过程以及面向对象的类和对象的使用?类和对象的使用和描述。对象的初始化?这个构造方法可以调用这个类的构造方法。

 

  

什么是面向对象

Java语言是一种纯面向对象的语言。面向对象的语言不仅仅是Java,还有C、PHP等。

 

  OOP(Object Oriented Programming)简称,其基本特征是封装性、继承性和多态性。

  00-1010要搞清楚什么是面向对象,首先需要知道两者的区别。

  面向过程更注重程序的每一步,通过相应的函数来实现。

  比如五子棋,面对流程,需要先分析每一步。

  1.实现游戏的开始

  3.棋盘的构造

  4.玩家下象棋,打印新棋盘

  5.电脑下棋,打印新棋盘。

  判断你是赢还是输

  7.返回并输出结果。

  对于面向对象,需要找出对应的对象。

  1.电脑和播放器

  2.棋盘

  3.规则设置

  这三个项目都属于对象。第一个类对象(玩家对象)负责接受用户输入,并通知第二个类对象(棋盘对象)棋子布局的变化。当棋盘对象接收到棋子的变化时,它负责在屏幕上显示这些变化。同时用第三类对象(规则系统)来判断棋局。

  改五子棋围棋,如果是流程化的思路,需要多个步骤和函数的修改和维护。而且它是面向过程的,经常需要修改大量代码,因为程序的每一步都是相互关联的。然而,面向对象只需要维护对象,并且每个对象都具有很强的独立性。

  因此,与面向过程相比,面向对象具有更好的可维护性、可重用性和可扩展性。

  而我们的面向对象只需要专注于寻找对象、构建对象和使用对象。关键是抽象出类。

  00-1010语法:

  Java中的类由class关键字定义,它们的语法格式如下:

  [修饰符]类名[扩展父类名][实现接口名]{未定义

  //类主体

  }

  这里的扩展和实现是可选的,类体包括成员变量(也称为字段和属性)和成员方法。

  以下类名采用大驼峰。

  成员变量在类中定义,在方法之外。

  类相当于一个模板,根据它可以创建许多对象。类是对象的抽象归纳,这里的类也可以看作是自定义类型。

  下面定义了一个Person类,由姓名和年龄组成,成员方法是人的吃饭、睡觉等行为。

  class Person { public String name公共int agepublic void eat(){ system . out . println( eat );} public void sleep(){ system . out . println( sleeping );}}}在使用这个类之前,必须先实例化一个对象,并且只有类才能有对象。

  要访问目标,首先,目标必须是一个实体。只有有了实例化的对象,才能访问和修改对象,相当于类只是一个画图。只有做出实体模型,才能对模型进行修改。

  如何创建对象?这时,你需要使用new关键字来构建一个对象。

  Person per=new Person();因为Person是一个自定义类型,所以上面的代码前面是一个类型,后面是一个变量。

  这里,per是一个存储对象地址的引用变量,这个引用指向这个对象。

  

面向过程与面向对象

1.类是可用于定义变量的自定义类型。在java中,由类定义的变量称为成员变量。

 

  2.一个类可以定义多个变量,实例化的对象会占用实际的物理空间,存储类成员变量。

  3.类实例化相当于生活中盖房子。一门课只是设计图,只设计需要的东西,没有真正的建筑。只有当一个对象被实例化时,才会分配和存储数据,占用物理空间。

  4.只有使用new关键字,才能实例化一个对象并分配一块内存。

  00-1010成功创建对象后,需要对其进行初始化。

  在java中初始化对象需要“.”接线员。

  如果对象未初始化,则该变量中成员变量的初始值默认为对应的零值。

  public class classDemo { publi

  c static void main(String[] args) { //实例化一个对象 Person per1=new Person(); //对per1对象进行初始化 per1.age=20; per1.name="zhangsan"; per1.eat(); per1.sleep(); Person per2=new Person(); //对per2对象进行初始化 per2.age=30; per2.name="lisi"; per2.eat(); per2.sleep(); }}

 

  

this的使用

1.this可以代表当前对象的引用

 

  2.可以避免成员方法参数与成员名称冲突,将成员变量与其他参数区别开

  

this.data//访问成员变量

 

  this.fun();//访问成员方法

  this();//调用构造方法,具体看下文构造方法

  

//定义一个日期的类public class MyDate { public int year; public int month; public int day; /** * 设置日期: */ public void setDate(int year,int month,int day) { this.year = year; this.month = month ; this.day = day; //如果不区分,就可能出现 //year = year; //month = month ; //day = day; } public void printDate() { System.out.println("年:"+this.year+"月:"+this.month+"日:"+this.day); } public static void main(String[] args) { // this.printDate(); MyDate myDate = new MyDate(); myDate.setDate(2022,3,25); myDate.printDate(); }}

 

  

构造方法

代码:Person per=new Person();

 

  你是否有疑惑为什么最后一个Person后面会跟一个括号

  其实一个括号代表的是调用一个无参数的构造方法,当你编写的程序中,没有构造方法,系统其实就调用隐藏的无参数的构造方法,只不过这个构建函数无实际作用。如果程序存在构造方法,那系统就不会默认生成无参数的构造方法

  什么是构造方法?构造方法与普通的成员方法有什么不同?

  1.构造参数没有返回值,即使void也不行

  2.构造方法中的方法名与该类的名字相同

  构造方法仍然支持方法重载,调用哪一个方法,由参数列表决定

  

 

  

this可以调用本类的构造方法

 public Student() { //调用本类中 带有2个参数的构造方法,第一个参数的类型是String,第2个参数的类型是int this("gaobo",18); } public Student(String name,int age) { this.age = age; this.name = name; System.out.println("这个是带2个参数的构造方法!"); }

操作可行的前提是,要保证this语句在该方法中最前面的一行,注释除外

 

  并且不能形成环(两个构造方法相互调用)

  java类中支持快速打印出成员变量,不需要自己写一个show方法来进行打印

  

 public String toString() { return "Person{" + "name=" + name +  + ", age=" + age + }; }

toString方法,它通常只是为了方便输出,比如System.out.println(xx),括号里面的xx如果不是String类型的话,就自动调用xx的toString()方法,toString方法会返回一个以文本方式表示此对象的字符串。

 

  IDEA快速生成toString方法的快捷键:鼠标右键->generate->toString

  到此这篇关于Java 类与对象超基础讲解的文章就介绍到这了,更多相关Java 类与对象内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: