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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。