> 文档中心 > Java基础——面向对象基础

Java基础——面向对象基础


面向对象的基础

编程思想

面向过程只考虑事物发展的的顺序面向对象1、先考虑事物中有哪些对象2、再考虑对象与对象之间的关系

什么是对象

生活中的对象:真实存在的事事物代码中的对象:通过代码描述一个真实存在对的事物静态:属性(或成员变量)动态:方法(函数)

什么是类

多个对象抽取其共同点形成概念,称为“类"属性方法

对象与类的关系

生活中:先有对象,再有类代码中:先有类,再有对象对象是类的实例,类是多个对象抽取共同点形成的概念

Java类

如何创建类

语法:class 类名{}注意:1、一个类class前有public,这种类称为”公共类“2、公共类的类名必须与文件名一致3、一个文件中可以定义多个类4、一个文件中只能有一个公共类5、一个文件中类名不能重复建议:1、一个文件中只能写一个类2、类名的命名规则2.1、大驼峰,见名只意2.2、可以使用大写字母,小写字母,数字,“_”,"$"2.3、数字不能开头

类的组成

属性(成员变量):作用:描述该类对象静态的事物如:人的性别、姓名、年龄等在那定义属性?类中,方法以外,定义的变量称为属性注意:一个类中属性名不能重复如何定义属性?1、在类中,方法以外2、使用定义变量的方法定义属性语法:数据类型 属性名;方法(函数):作用:描述该类对象动态的特征如:人的吃饭、睡觉、打游戏等在那定义方法?类中,方法以外如何定义方法?public 返回值类型 方法名(形参列表){方法体return 返回值;}构造函数(构造方法):作用:创建该类的对象注意:类中可以不定义构造函数,如果一个类中没有构造函数,系统会帮我们给该类生成一个无参构造函数语法:public 类名(形参列表){方法体}注意:没有返回值的特殊方法
练习:    创建一个类为dog    该类的属性有:姓名、性别、毛色、年龄    方法有:叫,在该方法中输出“汪汪汪!”    提供一个有参构造,一个无参构造    class dog{//属性:姓名、性别、毛色、年龄String name;String sex;String color;int age;//定义构造函数(无参)public dog() {}//定义构造函数(有参)public dog(String name,String sex,String color,int age) {}//定义“叫”方法public void call() {System.out.println("汪汪汪!");}}

重载

要求:1、同一个类中2、方法名一致3、形参列表不同注意:一个类中如果有多个构造函数,那么这多个构造函数的关系一定是重载

局部变量与成员变量

局部变量:声明的位置:方法中或形参中使用范围:在A方法中声明,只能在方法A中使用生命周期:变量的声明开始,方法调用结束成员变量:声明的位置:类中方法外使用范围:在A类中声明,可以在A类中的任何一个方法中使用生命周期:随对象的创建而生成,随对象的消亡而消亡

this关键字

1、在方法中,当成员变量与局部变量名称一致时,用于区分成员变量还是局部变量2、在方法中调用当前类的其他成员属性或方法3、在构造函数中使用this可以调用成员变量或成员方法可以区分成员变量与局部变量可以调用当前类中别的构造函数语法:this(实参列表)注意:只能在构造函数的第一行使用含义:谁调用this所在的方法,this就代表谁

Java对象

如何创建一个对象

语法:数据类型 对象名 = new 类名(实参列表)含义:使用new关键字调用构造注意:该对象的类名就是该对象的数据类型一个类可以创建多个对象

对象创建过程

1、在堆内存中开辟一片空间2、加载对象的属性,并给属性赋初值3、执行构造函数中的代码4、将开辟的内存地址赋值给变量基本数据类型传递的是值本身,引用数据类型传递的是地址

对象的内存分配

Java基础——面向对象基础

参考文章:(https://www.cnblogs.com/jianwei-dai/p/15402683.html)

对象调用属性,调用方法

调用属性:对象.属性名 获取属性值对象.属性名 = 值;设置属性值调用方法对象.方法名(实参列表);

匿名对象

没有变量名的对象,称为匿名对象使用场景:当对象只使用一次时,可以不用给对象起对象名,直接创建并使用

ianwei-dai/p/15402683.html)

对象调用属性,调用方法

调用属性:对象.属性名 获取属性值对象.属性名 = 值;设置属性值调用方法对象.方法名(实参列表);

匿名对象

没有变量名的对象,称为匿名对象使用场景:当对象只使用一次时,可以不用给对象起对象名,直接创建并使用

练习

定义学生类:属性:姓名(name)、年龄(age)、性别(sex)、分数(score)方法:打招呼(sayHi)打印学生所有信息创建多个学生对象,为其各个属性赋值,并调用方法
public class Student {String name;int age;String sex;double score;public void say() {System.out.println("姓名:"+name + ",年龄:" + age + ",性别:" + sex + ",成绩:" + score);System.out.println(name + "说:Hello");}}
public class Test {public static void main(String[] args) {Student student = new Student();student.name = "豆三岁";student.age = 22;student.sex = "男";student.score = 100;student.say();}}

运行结果:
在这里插入图片描述