首页 > 系统相关 >java----面向对象(1)概念,类与对象的创建,构造器,创建对象和内存分析,以及小总结

java----面向对象(1)概念,类与对象的创建,构造器,创建对象和内存分析,以及小总结

时间:2022-10-04 12:34:22浏览次数:50  
标签:java name 对象 age 创建对象 构造 ---- 实例 new

面向对象编程

1.java的核心思想就是OOP

面向过程思想:步骤清晰,第一步做什么,第二步做什么,适合处理一些较为简单的问题

2.面向对象思想:分类的斯文模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考,最后对某个分类下的细节进行面向过程的思索,适合处理复杂的问题

3.对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统,但是具体到微观操作,仍需要面向过程的思路去处理

一.面向对象

1.面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据。

2.抽象

3.三大特性

  • 封装

  • 继承

  • 多态

4.从认识论角度考虑是现有对象后有类。对象,是具体的事务。类,是抽象的,是对对象的抽象

5.从代码运行的角度考虑是先有类后有对象。类是对象的模板

二.类与对象的关系

1.类是一种抽象的数据类型,它是对某一类事物整体描述或定义,但是不能代表某一个句体的事物
  • 例如动物,植物,手机,电脑

  • Person类,Pet类,Car类,这写类都是用来描述或定义某一类句体的食物应该具备的特点和行为

2.对象是抽象概念的句体实例
  • 张三就是一个人的具体实例,张三家的旺财就是狗的一个具体实例

  • 能够体现出特点,展现出功能的是句体的实例,而不是一个抽象的概念

三.创建于初始化对象

1.使用new关键字创建对象

2.使用new关键字创建的时候,出了分配内存空间之外,还会给创建好的对象默认初始化以及对类中构造器的使用

3.类中的构造器也成为构造方法,是在进行创建对象的时候必须要调用的,并且构造器有以下两个特点:

  • 必须和类的名字相同

  • 必须没有返回类型,也不能写void

4.构造器必须要掌握

面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据。

类:--------上面类定义属性和方法

package com.oop.demo02;
//学生类
public class Student {
  //一个类只有属性和方法
  //属性
  String name;
  int age;
  //方法
  public void study(){
      System.out.println(this.name+"在学习");
  }
}

对象:----通过对象实例化,来封装数据

package com.oop.demo02;
//一个项目应该只有一个main方法
public class Application {
  public static void main(String[] args) {
      //类:抽象的,需要实例化
      //类实例化后会返回一个自己的对象
      //student对象就是Student类的具体实例!
      Student xiaoming = new Student();
      Student xh = new Student();
      xiaoming.name ="小明";
      xiaoming.age = 3;
      xh.name = "小红";
      xh.age = 3;
      System.out.println(xiaoming.name);
      System.out.println(xiaoming.age);
      System.out.println(xh.name);
      System.out.println(xh.age);
  }
}

构造器:

package com.oop.demo02;
//一个项目应该只有一个main方法
public class Application {
  public static void main(String[] args) {
      //new关键字,实例化一个对象
      Person person1 = new Person();
      System.out.println(person1.name);
  }
}
/*
//类:抽象的,需要实例化
      //类实例化后会返回一个自己的对象
      //student对象就是Student类的具体实例!

Student xiaoming = new Student();
      Student xh = new Student();
      xiaoming.name ="小明";
      xiaoming.age = 3;
      xh.name = "小红";
      xh.age = 3;
      System.out.println(xiaoming.name);
      System.out.println(xiaoming.age);
      System.out.println(xh.name);
      System.out.println(xh.age);
*/
--------------------------------------------------------------
package com.oop.demo02;
//java文件编译后---->class
public class Person {
  //一个类即使什么写,他也会存在一个方法
  //显示的定义构造器
//alt+insert生成构造器
  String name;
  int age;
  //无参构造器
  //实例化初始值
  //走完整个构造器,才输出person.name="wang"
  //1.使用new关键字,必须要有构造器,下方为无参构造器
  //2.构造器用来出初始化值
  public Person(){//默认的构造器
  }//alt+insert快速创建构造器
  //有参构造器,一旦定义有参构造,无参就必须显式定义,
  //无参定义{}花括号里面为空
  public Person(String name){//构造器的重载
      this.name = name;
  }

  public Person(int age) {
      this.age = age;
  }
}
/*
public static void main(String[] args) {
      //new关键字,实例化一个对象
      Person person = new Person("wang");
      System.out.println(person.name);
  }
-----------------------------------------------------------

- --创建对象,内存分析

 

 

构造器

           
1.和类名相同
2.初始化对象的值                  
注意点:
1.定义了有参构造器,如果想使用无参构造,需要显示的定义一个无参构造器
Alt+insert快速创建构造器
this. = 参数传进来的值
*/

小总结

1.类与对象
类是一个模板:抽象,对象是一个具体的实例
2.方法:定义,调用!
3.对应的引用:
引用类型: 基本类型:(8)
说白了就是引用就是指向真实对象的地址
对象是通过引用来操作的栈指向-->真实对象在堆(地址)里
4.属性:字段Field 成员变量
默认初始化:数字:0 0.0
char:u0000 boolean:false
引用类型:null
修饰符 属性类型 属性名 = 属性值
5.对象的创建和使用
-必须使用new关键字创造对象,构造器 Person person = new Person;
-对象的属性 wang.name
-对象的方法 wang.sleep()
6.类:只能下这两个东西:
静态的属性 属性
动态的行为 方法
*/

![image-20221004115053322](C:\Users\个人用户\AppData\Roaming\Typora\typora-user-images\image-20221004115053322.png)

标签:java,name,对象,age,创建对象,构造,----,实例,new
From: https://www.cnblogs.com/wang1999an/p/16753566.html

相关文章

  • CSharp: Factory Method Pattern in donet core 3
     #regionAnimalHierarchy/**BoththeDogandTigerclasseswill*implementtheIAnimalinterfacemethod.*////<summary>......
  • AcWing 算法提高课 矩阵乘法
    可以用快速幂的形式求大量的相同矩阵乘法。1、快速幂求斐波那契数列的第n项(n很大)先将斐波那契数列的递推转化成矩阵形式 然后用快速幂求解A^n 例题:求斐波那契数列......
  • Baklib知识分享|企业文档管理的一些策略
    在信息化的数字时代,任何一个工作流程都涉及到各种文档数据的产生、存储、使用和管理,员工可以在此基础上完成在线编辑任务,跨组织跨地域的文件共享,以及企业知识的积累和沉淀。......
  • python生成二维码
    前言二维码在我们的生活中可以说是必不可少的,不单单是手机支付、其它很多地方也都需要扫描二维码。那么下面我们就来看看如何使用python来生成二维码、以及识别二维码。......
  • 一个复杂点的看板娘————蕾姆(レム)
    添加看板娘蕾姆蕾姆(レム)1、参考上一看板娘博文学会基本操作参考博文:>> 一个简单的看板娘-2Ming-博客园(cnblogs.com) <<2、添加蕾姆参考博文:>> 添加一个好......
  • 多线程详解——Java
    多线程详解——Java.Thread1.1多任务​ 在计算中,多任务是一种多个任务(也称之为进程)共享处理资源(如CPU)的方法。在多任务操作系统上,例如WindowsXP,您可以同时运行多个应用......
  • 手写现代前端框架diff算法-前端面试进阶
    前言在前端工程上,日益复杂的今天,性能优化已经成为必不可少的环境。前端需要从每一个细节的问题去优化。那么如何更优,当然与他的如何怎么实现的有关。比如key为什么不能使用......
  • Python中优雅的字典技巧总结
    1.引言在日常工作中,大家都需要进行字典的相关操作,对于某些初学者,经常会写一堆繁琐的代码来实现某项简单的功能。本篇文章重点介绍一些在Python中关于字典的一些简单技巧,熟......
  • 如何推前缀和式子
    我们设\(\operatorname{f}_k(n)=\sum\limits_{i=1}^{n}i^k\)如果已知\(\operatorname{f}_{k-1}(n)\),如何推导至\(\operatorname{f}_k(n)\)?首先发现:\[\operatorna......
  • 电脑正常使用,突然无法开机
     现象,待机后,几个小时,再次看电脑,电源、电池灯统统不亮。以为主板挂了。最后看到网上有人说将电池拆下,然后长按几次开机键,可以放电。然后再次通电。于是动手拆开,照做后,重......