面向对象编程有哪些基础概念和设计模式?

2026-04-11 07:171阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1730个文字,预计阅读时间需要7分钟。

面向对象编程有哪些基础概念和设计模式?

面向对象(OOP)是Java编程语言的核心概念。以下是面向对象学习的主要内容:

1. Java面向对象三条主线: * 1. 类及类的成员:属性(属性)、方法(方法)、构造器(构造器)、代码块(代码块)、内部类 * 2. 面向对象的三大特性:封装、继承、多态 * 3. 关键字:this、super、static、final、abstract

2. Java类及类的成员: * 属性:用于存储对象的属性值 * 方法:用于执行特定的操作 * 构造器:用于创建对象 * 代码块:用于初始化变量或执行一些代码 * 内部类:定义在类内部的类

3. 面向对象的三大特性: * 封装:将对象的数据和操作封装在一起,隐藏对象的内部实现细节 * 继承:允许一个类继承另一个类的属性和方法 * 多态:允许一个对象以多种形式存在,根据上下文动态调用不同的方法

4. 关键字: * this:指向当前对象 * super:指向父类对象 * static:表示静态成员,属于类,不属于对象 * final:表示最终的,不可修改的 * abstract:表示抽象的,不能被实例化

面向对象(上)

java面向对象学习三条主线 * 1.java类及类的成员:属性、方法、构造器、代码块、内部类 * 2.面向对象的三大特征:封装,继承,多态 * 3.其他关键字:this,super,static,final,abstract,interface,package,import等


面向对象的三大特征
  • 封装
  • 继承
  • 多态

面向对象的思想概述
  • 类和对象是面向对象的核心概念

    类是对一类事物的描述,是抽象的,概念上的定义

    面向对象编程有哪些基础概念和设计模式?

    对象是实际存在的该类事物的每个个体,因此称为实例(instance)

    在java中万事万物皆对象

属性和方法 属性: 对应类中的成员变量 方法:对应类中的成员方法

package com.zx.oop; /* * 类和对象的使用 * 1.创建类,设计类成员 * 2.创建类的对象 * 3.通过对象.属性或对象.方法调用 */ public class PersonTest { public static void main(String[] args) { //创建Person类的对象 Person pe=new Person(); //调用对象的属性和方法 //对象.属性 pe.name="Jack"; pe.isMale=true; System.out.println(pe.name); //对象.方法 pe.eat(); pe.sleep(); pe.spke("中国话"); } } class Person{ //属性 String name; int age = 1; boolean isMale; //方法 public void eat() { System.out.println("人可以吃饭"); } public void sleep() { System.out.println("人可以睡觉"); } public void spke(String language) { System.out.println("人可以说话,讲的话是"+language); } }

运行结果: Jack 人可以吃饭 人可以睡觉 人可以说话,讲的话是中国话



类的多个对象之间的关系

在上面代码基础的pe.spke("中国话");的后面加上下面代码 //重新new一个对象 Person pe2=new Person(); System.out.println(pe2.name);//默认值为null System.out.println(pe2.isMale);//默认值为false //pe的对象地址赋值给pe3,所以指向的是堆里面的同一个实体 Person pe3=pe; System.out.println(pe3.name); pe3.age=99; System.out.println(pe.age);//所以pe.age也是99



类中的属性(成员变量)和局部变量

属性(成员变量)和局部变量

  1. 相同点:

    • 定义变量的格式是一样的
    • 先声明,后使用
    • 变量都有其作用域
  2. 不同点:

    • 成员变量: 在类体内定义的变量称为成员变量,它的作用域是整个类也就是说在这个类中都可以访问到定义的这个成员变量
    • 局部变量:声明在方法内,方法形参,代码块内,构造器形参,构造器内部的变量

    成员变量:在声明属性时,指明其权限,使用权限修饰符 局部变量:不可以使用权限修饰符


    类的属性根据其类型都有自己的默认初始化值

    成员变量: 整型(byte,short,int,long) 0 浮点型(float,double) 0.0 字符型(char) 0或'\u0000' 布尔型(boolean) false 引用数据类型:null 局部变量: 必须在声明的时候初始化值,不然会编译报错,形式参数需要调用的时候才赋值,所以形参没有编译错误


    内存中加载的位置

    成员变量:加载到堆空间中(非static) 局部变量:加载到栈空间中

    public class Demo10 { //成员变量 static int num=100; public static void main(String[] args) { System.out.println(num); add(); } //成员方法 public static void add(){ System.out.println("今天赚了"+num); } }

    public class Demo10 { public static void main(String[] args) { int i,j;//main方法里面定义的局部变量 for (i=1;i<10;i++){ for (j=1;j<=i;j++){ System.out.printf(j+"*"+i+"="+i*j+"\t"); } System.out.printf("\n"); } public void eat(){ String food="鸡腿"; System.out.print("李明喜欢吃"+food)//这里的food也是局部变量 } } } 方法

package com.zx.oop; /* * 类中的方法声明和使用 * 比如 :Math类:sqrt(),random() * Scanner类 :nextInt() */ public class UserTest { public static void main(String[] args) { User user=new User(); user.eat(); String where=user.getNation("中国"); System.out.println(where); } } //用户类 class User{ //属性 String name; int age; boolean isMale; /* 方法的声明 * * 权限修饰符 返回值类型 方法名 (形参列表 ){ * 方法体 * } * * 返回值类型:为有或无,有的话就为其返回的数据类型,无的话写void * * 方法名:属于标识符,遵循标识符的规范和规则,"见名知意" * * 形参列表:方法可以声明0个,1个,或多个形参,以逗号分隔 * * return关键字的作用: * 使用范围:方法体内 * 作用:结束方法。针对有返回值类型,使用"return 数据"方法返回所要的数据 * * 方法的使用中: * 方法中可以调用当前类的属性或方法 * 方法 * */ //void 修饰的表示没有返回值的方法 public void eat(){ System.out.println("用户吃饭"); } public void sleep(int hour){ System.out.println("用户休息了"+hour+"小时"); } /* * String表示返回的数据类型为String类型,也可以是其他类型,在方法体中用return关键字返回, * 如果没有返回值就用void修饰,通常没有返回值的方法就不用return,只能用"return;"结束方法 */ public String getName() { return name; } //String nation是方法里面的形式参数 public String getNation(String nation) { String info="我的国籍是"+nation; return info; } }

写的博客是为了面试的时候快速复习,有的知识点疏漏了也可以通过博客查看,坚持学习,坚持写博客。

本文共计1730个文字,预计阅读时间需要7分钟。

面向对象编程有哪些基础概念和设计模式?

面向对象(OOP)是Java编程语言的核心概念。以下是面向对象学习的主要内容:

1. Java面向对象三条主线: * 1. 类及类的成员:属性(属性)、方法(方法)、构造器(构造器)、代码块(代码块)、内部类 * 2. 面向对象的三大特性:封装、继承、多态 * 3. 关键字:this、super、static、final、abstract

2. Java类及类的成员: * 属性:用于存储对象的属性值 * 方法:用于执行特定的操作 * 构造器:用于创建对象 * 代码块:用于初始化变量或执行一些代码 * 内部类:定义在类内部的类

3. 面向对象的三大特性: * 封装:将对象的数据和操作封装在一起,隐藏对象的内部实现细节 * 继承:允许一个类继承另一个类的属性和方法 * 多态:允许一个对象以多种形式存在,根据上下文动态调用不同的方法

4. 关键字: * this:指向当前对象 * super:指向父类对象 * static:表示静态成员,属于类,不属于对象 * final:表示最终的,不可修改的 * abstract:表示抽象的,不能被实例化

面向对象(上)

java面向对象学习三条主线 * 1.java类及类的成员:属性、方法、构造器、代码块、内部类 * 2.面向对象的三大特征:封装,继承,多态 * 3.其他关键字:this,super,static,final,abstract,interface,package,import等


面向对象的三大特征
  • 封装
  • 继承
  • 多态

面向对象的思想概述
  • 类和对象是面向对象的核心概念

    类是对一类事物的描述,是抽象的,概念上的定义

    面向对象编程有哪些基础概念和设计模式?

    对象是实际存在的该类事物的每个个体,因此称为实例(instance)

    在java中万事万物皆对象

属性和方法 属性: 对应类中的成员变量 方法:对应类中的成员方法

package com.zx.oop; /* * 类和对象的使用 * 1.创建类,设计类成员 * 2.创建类的对象 * 3.通过对象.属性或对象.方法调用 */ public class PersonTest { public static void main(String[] args) { //创建Person类的对象 Person pe=new Person(); //调用对象的属性和方法 //对象.属性 pe.name="Jack"; pe.isMale=true; System.out.println(pe.name); //对象.方法 pe.eat(); pe.sleep(); pe.spke("中国话"); } } class Person{ //属性 String name; int age = 1; boolean isMale; //方法 public void eat() { System.out.println("人可以吃饭"); } public void sleep() { System.out.println("人可以睡觉"); } public void spke(String language) { System.out.println("人可以说话,讲的话是"+language); } }

运行结果: Jack 人可以吃饭 人可以睡觉 人可以说话,讲的话是中国话



类的多个对象之间的关系

在上面代码基础的pe.spke("中国话");的后面加上下面代码 //重新new一个对象 Person pe2=new Person(); System.out.println(pe2.name);//默认值为null System.out.println(pe2.isMale);//默认值为false //pe的对象地址赋值给pe3,所以指向的是堆里面的同一个实体 Person pe3=pe; System.out.println(pe3.name); pe3.age=99; System.out.println(pe.age);//所以pe.age也是99



类中的属性(成员变量)和局部变量

属性(成员变量)和局部变量

  1. 相同点:

    • 定义变量的格式是一样的
    • 先声明,后使用
    • 变量都有其作用域
  2. 不同点:

    • 成员变量: 在类体内定义的变量称为成员变量,它的作用域是整个类也就是说在这个类中都可以访问到定义的这个成员变量
    • 局部变量:声明在方法内,方法形参,代码块内,构造器形参,构造器内部的变量

    成员变量:在声明属性时,指明其权限,使用权限修饰符 局部变量:不可以使用权限修饰符


    类的属性根据其类型都有自己的默认初始化值

    成员变量: 整型(byte,short,int,long) 0 浮点型(float,double) 0.0 字符型(char) 0或'\u0000' 布尔型(boolean) false 引用数据类型:null 局部变量: 必须在声明的时候初始化值,不然会编译报错,形式参数需要调用的时候才赋值,所以形参没有编译错误


    内存中加载的位置

    成员变量:加载到堆空间中(非static) 局部变量:加载到栈空间中

    public class Demo10 { //成员变量 static int num=100; public static void main(String[] args) { System.out.println(num); add(); } //成员方法 public static void add(){ System.out.println("今天赚了"+num); } }

    public class Demo10 { public static void main(String[] args) { int i,j;//main方法里面定义的局部变量 for (i=1;i<10;i++){ for (j=1;j<=i;j++){ System.out.printf(j+"*"+i+"="+i*j+"\t"); } System.out.printf("\n"); } public void eat(){ String food="鸡腿"; System.out.print("李明喜欢吃"+food)//这里的food也是局部变量 } } } 方法

package com.zx.oop; /* * 类中的方法声明和使用 * 比如 :Math类:sqrt(),random() * Scanner类 :nextInt() */ public class UserTest { public static void main(String[] args) { User user=new User(); user.eat(); String where=user.getNation("中国"); System.out.println(where); } } //用户类 class User{ //属性 String name; int age; boolean isMale; /* 方法的声明 * * 权限修饰符 返回值类型 方法名 (形参列表 ){ * 方法体 * } * * 返回值类型:为有或无,有的话就为其返回的数据类型,无的话写void * * 方法名:属于标识符,遵循标识符的规范和规则,"见名知意" * * 形参列表:方法可以声明0个,1个,或多个形参,以逗号分隔 * * return关键字的作用: * 使用范围:方法体内 * 作用:结束方法。针对有返回值类型,使用"return 数据"方法返回所要的数据 * * 方法的使用中: * 方法中可以调用当前类的属性或方法 * 方法 * */ //void 修饰的表示没有返回值的方法 public void eat(){ System.out.println("用户吃饭"); } public void sleep(int hour){ System.out.println("用户休息了"+hour+"小时"); } /* * String表示返回的数据类型为String类型,也可以是其他类型,在方法体中用return关键字返回, * 如果没有返回值就用void修饰,通常没有返回值的方法就不用return,只能用"return;"结束方法 */ public String getName() { return name; } //String nation是方法里面的形式参数 public String getNation(String nation) { String info="我的国籍是"+nation; return info; } }

写的博客是为了面试的时候快速复习,有的知识点疏漏了也可以通过博客查看,坚持学习,坚持写博客。