java-05 面向对象初级、包、创建对象

1.基本概念

      至于什么是面向对象、为什么面向对象、面向对象到底有什么好处  请移步这里进行了解

    1.1 面向过程与面向对象的区别与优缺点

          面向过程:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用每一个函数,适合简单的任务。

          面向对象:面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。每个对象包含自己的属性和功能。

          面向过程的优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。

          面向过程的缺点:没有面向对象易维护、易复用、易扩展。

          面向对象的优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护。

          面向对象的缺点:性能比面向过程低。

          面向对象的内部方法使用的是面向过程。

    1.2 类、属性、方法的概念

          类:是将具有相同属性和功能的物体抽象之后的结果,是一类事务的抽象表示。是创建对象的模板 。类里面包含属性和方法。(例如人类 所有的人都有身高体重(属性),都能吃饭睡觉(方法))

          属性:类的属性就是该类所有的全部特征(也叫成员变量)(这里并不严谨,属性还可以分为类的属性和对象的属性)。 例如人类有身高体重、汽车类有品牌和马力、电脑类有cpu型号和内存大小等。

          方法:类的方法就是该类所有的全部功能(这里并不严谨,方法分为类的方法和对象的方法)。例如人可以吃饭睡觉、汽车可以跑、电脑可以开机关机等。

          理解几个名词 :OOA 面向对象分析    OOD面向对象设计(只看前一部分就行了 服了百度了)   OOP面向对象编程

    1.3对象的概念

          对象就是一个类的实例,是类通过 new 关键字构造出来的,本文下面会详细介绍如何构造一个对象和构造对象时比较常用的方法。

2.面向对象语法

    2.1 声明一个类

          声明一个类的语法:  [访问修饰符] class 类名 {      类体(属性和方法)     }

          注意:一个类文件中可以有多个类,但只能有一个public的类,并且该类必须与保存该类的java文件名一致,否则会发生错误。

public class Person{  //人类

}

    2.2声明属性

          声明属性的语法   [访问修饰符] 变量类型  变量名;

 

public class Person{  //人类
       public String name; //名字
       public int age;   //年龄
       public int height; //身高
       public int weight; //体重
}

    2.3 声明方法

        声明方法的语法: [访问修饰符] 返回值类型 方法名{    方法体   }

public class Person{  //人类
       public String name; //名字
       public int age;   //年龄
       public int height; //身高
       public int weight; //体重
       public void sleep(){
            //方法体
      }
}

    2.4一些说明

        2.4.1 访问修饰符

            访问修饰符是用来控制对象的属性或方法的可见性的,其目的和作用后面会仔细为大家讲解。

        2.4.2 方法的返回值

            方法执行完毕后,有的方法可能需要返回处理后的数据或者返回一个运行状态,那么这个时候就要用到方法的返回值。 返回值在方法中的实现就是return 一个与返回值类型相同的变量或常量。

public class Person{  //人类
       public String name; //名字
       public int age;   //年龄
       public int height; //身高
       public int weight; //体重
       public void sleep(){
            //方法体
      }
       public int getAge(){   //带有返回值的方法,返回一个int
            return this.age;  //返回一个int类型的值。
      }
}

3.包的概念

    3.1什么是包,为什么要使用包

        包是java进行类管理的一种手段,相当于硬盘中的文件夹(包在硬盘上面的映射就是一个一个的文件夹),我们可以将其看成是类的文件夹。

        一般的报名都是以域名到这写的形式,每一个点号代表一级文件夹  例如  com.cnblogs.xiaobai 就是一个三级包名,第一级是com  第二级是 cnblogs 第三级是xiaobai

    3.2 类中使用包的体现 导入包中的类

        一般在每个类中的第一句话都是 package xxx  这句话就声明了该类所在的包。

        我们在导入包中的类的时候一般使用import + 类路径的方式  例如我们要使用ArrayList类 可以是 import java.util.*; 导入util包下全部类  也可以使用 import java.util.ArrayList;只导入ArrayList类

        导入静态变量或方法 : 使用 import static + 静态方法包路径或静态属性包路径

import java.util.*; //导入java.util包中全部的类

import java.util.ArrayList; //导入java.util.ArrayList;类

import static java.lang.Math.max; //导入Math类的静态max方法

import static java.lang.Math.PI; //导入静态常量PI(变量也一样)

4.创建对象 构造与析构、main方法、 this

    4.1创建对象的方式

          最常用的创建对象的方式就是 使用 new 关键字来创建对象,我们下面会详细介绍这种方式

          java一共有几种创建对象的方式,请大家先有一个印象:(请注意 3.4两种方式是不会调用构造方法的)

          1. 使用new 关键字 调用构造方法进行创建对象

          2. 使用反射,调用newInstance方法创建对象(实质上内部调用了构造方法)

          3.使用对象的clone方法,该方法直接从内存中进行影印对象,不调用构造方法

          4.使用反序列化readObject方式创建的对象(直接从流中读取,不调用构造方法)

    4.2 new 关键字

          new 关键字是专门用来创建对象的,其作用就是以一个类为模板,创建除一个新的对象,该关键字会自动调用类的构造方法。(注意 构造方法不允许我们调用)

          语法  : 类名   引用名 =  new 类名();

          

Person p = new Pserson(); //注意new 后面的类名有括号,表示调用构造方法

    4.3 构造方法、析构方法

        4.3.1 构造方法

            构造方法是java类中比较重要的方法,如果我们在声明一个类的时候没有为其指出明确的构造方法(即我们自己没有写构造方法),那么编译器会为我们的类自动生成一个无参的构造方法

            一旦我们自己声明了一个构造方法,那么编译器就不会再为我们生成无参的构造方法了 (建议大家如果要自己声明有参构造方法,一定要先声明一个无参构造方法)

            构造方法必须与类名完全相同,否则就不能算是构造方法。类中可以有多个构造方法,但每个构造方法的参数列表一定不同(这是方法的重载,后面会细说),可以通过this关键字进行调用(this关键字下面会讲到)。

            注意  : 构造方法没有返回值  直接使用  public 类名() {  } 的形式进行声明,该方法默认就会返回构建的对象,如果不希望外部构造对象,可以使构造方法私有化(后面封装会讲到)

public class Person{  //人类
       public String name; //名字
       public int age;   //年龄
       public int height; //身高
       public int weight; //体重
       public Person(){
           //无参的构造方法
       }
}

        4.3.2 析构方法

            析构方法即是java对象被垃圾回收线程GC回收之前执行的方法,由于java是由垃圾回收线程自动回收内存,所以该方法使用较少,这里不再进行过多的描述,如果有兴趣可以自行百度 finalize()方法。

     4.4 main 方法

         main 方法可以说是比较重要的方法了,mian方法是程序的入口点,一个java程序就是从main方法开始执行的,一个类中只能有一个main方法作为程序的入口,并且main方法的书写格式是固定的

         main方法的固定格式  :   public static void main(String[] args) {   方法体   }

         

public calss Test{
        public static void main(String[] args){
            //程序开始执行的地方
        }
}

    4.5 this关键字

         this 关键字用来指代当前调用对象,在我们进行编程时,可能要在当前对象中调用当前对象的属性或方法,那么这时,我们就可以使用this关键字进行指代。(利用这个方法可以找到被局部变量隐藏的属性)

      

public class TestThis {
    private int aField;
    public TestThis(int afield) {
        this.aField = afield; //this指代当前对象,如果不用this,访问的就是形参
        this.aMethod();//调用当前对象的aMethod 而不是其他对象
    }

    public void aMethod() {
        //这是一个方法
    }
}

5.补充知识

      暂时还没有想到,等想到了再回来补充吧!

         

原文地址:https://www.cnblogs.com/xiaobai1202/p/10801684.html

时间: 2024-12-18 04:34:32

java-05 面向对象初级、包、创建对象的相关文章

java面向对象(包package)

包package 对类文件进行分类管理 给类提供多层命名空间 写在程序文件的第一行 类名的全称是 包名.类名 包也是一种封装形式 包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰. 不同包中的子类还可以直接访问父类中被protected权限修饰的成员. 包与包之间可以使用的权限只有两种:public,protected public     protected     default     private 同一类中       ok               ok  

JAVA的面向对象编程--------课堂笔记

JAVA的面向对象编程--------课堂笔记 面向对象主要针对面向过程. 面向过程的基本单元是函数.   什么是对象:EVERYTHING IS OBJECT(万物皆对象)   所有的事物都有两个方面: 有什么(属性):用来描述对象. 能够做什么(方法):告诉外界对象有那些功能. 后者以前者为基础. 大的对象的属性也可以是一个对象.   为什么要使用面向对象: 首先,面向对象符合人类看待事物的一般规律. 对象的方法的实现细节是屏蔽的,只有对象方法的实现者了解细节. 方法的定义非常重要.方法有参

python 面向对象初级篇

Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强-" 面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处. Python while True: if cpu利用率 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 硬盘

python面向对象初级(七)

概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处. while True: if cpu利用率 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 硬盘使用空间 > 90%: #发送邮件提醒 连接邮箱服务器 发

Java之面向对象相关问题集

面向对象的特征有哪些方面  1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象. 2.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面.面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象. 3.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重

Python面向对象-初级

面向对象三大特性 面向对象的三大特性是指:封装.继承和多态. 一.封装 封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容. 所以,在使用面向对象的封装特性时,需要: 将内容封装到某处 从某处调用被封装的内容 第一步:将内容封装到某处 # 创建一个类 class Foo: def __init__(self,name,age): # 构造方法,根据类创造对象时自动执行 self.name = name self.age = age # 根据类Foo常见对象 # 自动执行Foo

Java 基础 ------- 面向对象(一)

面向对象的三大特征:封装.继承和多态 1.类与对象 对象:描述客观事物的一个实体 类:具有相同属性和方法的一组对象的集合. 对象拥有类的属性和方法,是类的一个实例,就像模具与模具制作的物品之间的关系. 1.1.类的定义: 访问修饰符 class 类名{ } Java 类名的命名规则: 类名应该以下划线(_)或字母开头,最好以字母开头. 第一个字母大写,如果类名由多个单词组成,则每个单词的首字母最好都大写. 类名不能为 Java 中的关键字,例如 boolean.this.int 等. 类名不能包

[Java 05 OO] (基础篇) 《Java开发实战经典》

p5OO 第五章 面向对象 (基础篇) Notes (1), Constructor / this / String   String str1 = "hello"; 解释 : 是把一个在堆内存空间的使用权给了 str1 对象.   String str2 = "hello"; str1 == str2 是 true   String 字符串的内容不可改变 (2), Java 常用的内存区域    1), 栈内存空间    2), 堆内存空间    3), 全局数据

java:面向对象(Leak filling)

1.类的修饰符只能是:public,默认的.另外:final  ,abstract,public interface(interface前不加public会报错). 2.在main函数中创建对象时,new哪个类的个无参构造就是调哪个类的无参构造,同时隐式调用该类父类的无参构造. new有参构造就会调有参构造,同时隐式调用该类父类的无参构造. 3.构造方法和普通方法都可以用四种修饰符来修饰:public,private,protected,默认的. 另外:还可以用 static,但是构造方法没有返