1、OO(Object–Oriented )面向对象,

    OO方法(Object-Oriented Method,面向对象方法,面向对象的方法)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法

         Object Oriented是建立在“对象”概念基础上的方法学

    OOP:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。

    OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成

  OOP 的五个核心:类 对象  继承,多态和封装  

   类:对现实世界事物的抽象表示,包括事物的状态信息(成员变量)和行为信息(成员方法)

   对象:对抽象事物的具体表示,使其具有自身的特点

   封装:信息封装,

   多态:类实例化成对象之后的不同体现

     继承:类与类之间的关联

OOP 的五个核心:类 对象  继承,多态和封装之间的关系,类和对象是两个实体,继承,多态和封装是他们之间的互相转换关系

2、类

    类实际上是定义一个模板,而对象是由这个模板产生的一个实例

    注意事项:一个java中可以声明多个类 但只能有一个pubulic修饰的类

  类定义

    修饰符class类名{
    修饰符类型实例变量名; 类型实例变量名; ......
    修饰符类型方法名(参数类型参数 1,参数类型参数 2...){ //方法体
    }
    ......
    }

  其中:

    修饰符有四种

    private:只有本类可见。
    protected:本类、子类、同一包的类可见。
         默认(无修饰符):本类、同一包的类可见。
    public:对任何类可见

 变量与方法

    成员变量:修饰符 类型 实例变量名,也即是属性,可见区域根据修饰符变化,分静态和非静态

    局部变量:方法中定义的变量,有效范围在方法体内

 创建对象的入口:类的构造方法

    构造方法与类同名,没有返回值,可以有多个参数,但必须有一个是无参数

 类的入口:类的主方法 main,程序流程入口,静态无返回值,参数为数组

      public static void main(String[] args) {}

成员方法:修饰符 类型 方法名(参数类型 参数 1,参数类型 参数 2...){ //方法体}  分静态和非静态

  区别和对比详见下图

3、对象

    对抽象事物的具体表示,即类的实例,现实展现。

  对象的创建

    类 对象引用=new 类();

    先创建一个对象引用,再创建一个对象,并将对象初始化,最后通过= 将对象引用指向对象

    类:就是上面具体事物的抽象形式

    对象引用:可理解为对象别名,通过对象引用找到对象,可以指向一个或者0个对象,其实是寻址信息,类似C的指针,C++的地址

    new 类():创建一个对象并采用构造函数初始化,在堆内存中分配空间,new是创建对象的标识符,对象可以被多个对象引用指引。

    ();通过类的构造函数初始化对象,可以有参数

对象的比较   ==和equal

    == 比较对象的引用   equal 比较对象的内容

对象的销毁

将对象引用赋值为null,对象在堆空间中会被jvm通过垃圾回收机制回收

4、堆和栈

  堆栈:Java把内存分成两种,一种叫做栈内存,一种叫做堆内存

  栈内存

    存储一些基本类型的变量和对象的引用变量

    当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间。

    引用变量就相当于是为数组或对象起的一个名称,通过栈中的引用变量来访问堆中的数组或对象

  堆内存

    存用来存放由new创建的对象和数组。

    在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。

附:例子

public class User {// 静态变量public static String nationality = "china";// 非静态变量public String name;private int age;public User(){}// 带参数构造函数public User(String name){// this 的使用 this.name=name;}// 静态方法public static String getNationality() {return nationality;}public static void setNationality(String nationality) {User.nationality = nationality;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}

主类

public class UserTest {/*** @param args*/public static void main(String[] args) {System.out.println(User.nationality);// 静态变量调用System.out.println(User.getNationality());// 静态方法调用User user=new User("张三");// 创建对象  创建对象引用  并赋值System.out.println(user.nationality);// 静态变量调用 不建议System.out.println(user.name);// 非静态变量调用System.out.println(user.getName());// 非静态变量调用//    getAge();// 非法  main方法为静态 必须调用静态方法getStaticAge();// 合法 必须调用静态方法User user1=new User("lisi");User user2=new User("lisi");User user3=user1;if(user1==user3){// 用来比较引用指向是否相等 System.out.println("对象引用相等");}if(user1.equals(user2)){// 用来比较引用指向的内容是否相等System.out.println("对象内容相等");}}// // 普通方法
//  public void getAge(){
//      System.out.println("三岁");//
//  }// 静态方法public static void getStaticAge(){int age=3;// 局部变量 使用范围是方法内System.out.println(age+"岁");// }
}

转载于:https://www.cnblogs.com/Vivi17118/p/6511374.html

java 基础知识九 类与对象相关推荐

  1. Java基础知识运用,用对象,线程,Java窗口画出太阳系

    一个项目让你搞懂对象:Java基础知识运用,用对象,线程,GUI画出太阳系 一.需求分析: 用java基础知识画出太阳系八大行星的运行轨迹图,要求:运行轨迹图是动态图片,画出运行轨迹,画出地月系(不需 ...

  2. Java基础知识(九) 容器

    Java基础知识 1. Java Collections 框架是什么 2. 什么是迭代器 3. ArrayList.Vector 和 LinkedList 有什么区别 4. HashMap.Hasht ...

  3. Java基础 JSP九大内置对象

    JSP是java服务器动态页面,是一种Java servlet ,也是Java后台最常用的页面展示. jsp就大内置对象可以进行如下分类: 1.输入输出:out.request,response 2. ...

  4. Java基础笔记_6_类和对象_成员变量

    一 类和对象 类是抽象的概念,是对象的模板 对象是具体的事物,是类的具体实例 创建类的语法 public class 类名{  // 类内容 } 创建对象的语法 new 关键字就是实例化对象的意思.& ...

  5. Java基础-简聊类与对象

    简聊类和对象 我们在了解类和对象前,先聊下面向对象程序设计,面向对象程序设计就是通过对象来进行程序设计,对象表示一个可以明确标识的实体,比如:一辆车.一个人.一朵花等等,每个对象都有它自己独特的标识: ...

  6. 重学Java(035)——Java基础知识(类作为成员变量、接口作为成员变量、接口作为方法参数和返回值类型)

    学习内容:三种引用类型用法 一.类作为成员变量 二.接口作为成员变量 三.接口作为方法参数和返回值类型 实际的开发中,引用类型的使用非常重要,也是非常普遍的.我们可以在理解基本类型的使用方式基础上,进 ...

  7. python 类 对象 知乎_python基础知识:类,对象,模块三者的区别

    长话短说,我线代作业还没有写呢. 有点编程语言知识的朋友应该知道,编程语言有"面向对象"和"面向过程"两种. 解释一下:面向对象技术是目前流行的系统设计开发技术 ...

  8. 整理Java基础知识--NumberMath类

    Java Number 内置数据类型:byte int long short double 等 int i = 10: float i = 10.5f; 实际开发中,经常遇到使用对象,而不是内置数据类 ...

  9. Java基础知识Day08---Scaner类

    1.Scanner类 1.1定义 ​ 一个可以解析基本类型和字符串的简单文本扫描器. 例如,以下代码使用户能够从 System.in 中读取一个数: Scanner sc = new Scanner( ...

  10. java基础知识--(常用类)String类

    8.01 String简介 String(字符串常量)概述 String 类代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 字符串是常量: ...

最新文章

  1. MindSpore特性支持类
  2. 数据蒋堂 | “后半”有序的分组
  3. 抛弃UITableView,让所有列表页不再难构建
  4. 日记 [2008年01月21日]
  5. java入门第六天课程_java基础第六天
  6. 关于scriptManager与JS代码兼容问题
  7. 亚马逊正式发布关系型数据库Amazon Aurora
  8. c语言 void**类型转换,void *和其他指针的转化
  9. linux mysql服务基础操作(二)
  10. gd32 定时器时钟_漫谈LiteOS之开发板-Timer(基于GD32450i-EVAL)
  11. OpenCL入门概念
  12. 字符集本地化(locale)与输入法系列讲座-----(1) UTF-8 and Unicode FAQ
  13. 演讲者模式投影到幕布也看到备注_PPT制作技巧:如何实现ppt放映不同界面(演讲者模式)?...
  14. 深度学习GPU显卡选型攻略
  15. Linux -- 代理服务器(Squid Server)的配置与应用2
  16. PCB电路板EN 45545-2:2020最新标准的测试要求
  17. html编写扑克牌游戏,用js编写扑克牌小游戏
  18. VisionPro软件介绍
  19. amigo幸运字符什么意思_QQ有什么魅力?为什么00后都喜欢?细节都在这些“标识”里...
  20. 知乎:电脑长时间不关机会缩短电脑寿命吗?

热门文章

  1. 返回上一视图,凸显一个视图,其他视图变模糊
  2. 谈谈Runtime类中的freeMemory,totalMemory,maxMemory等几个方法
  3. 原型模式(Prototype)C++实现
  4. windows核心编程第一章阅读
  5. C#Brush的使用(转载)
  6. 机器学习基础:极大似然估计(Machine Learning Fundamentals: Maximum Likelihood Estimation)
  7. Bigasoft Audio Converter for Mac - 音频转换器
  8. 通过密钥 SFTP(三)指定不限定根目录
  9. 视频分割修整功哪一款视频剪辑软件更好用?
  10. Go slice切片的“陷阱”和本质