作为初入开发的萌新,我根据黑马程序员的教学视频和课件整理总结,记录下自己的JAVA学习,方便巩固和交流。每篇笔记首先回顾知识点,然后贴上代码和执行结果,最后进行小结。若有不正之处或者有疑问,欢迎指出,望与各位共同进步。

1.类的定义

修饰符    class    类名{

成员变量

成员函数

}

2.对象的创建

1)直接创建

类名 变量名=new 构造函数名(形式参数列表)

2)先声明变量,再赋值引用

变量名=对象变量名

3.成员函数的定义格式:

修饰符   返回值类型   函数名(形式参数列表){

函数体(需要被封装起来的功能代码);

}

修饰符访问
  本类 同包 子类 其他
private 允许      
默认 允许 允许    
protected 允许 允许 允许  
public 允许 允许 允许 允许

4.对象成员的调用

1)成员变量

对象名.属性名

2)成员函数

对象名.方法名(参数列表)

5.局部变量和全局变量

成员变量:  定义在类中变量,在整个类内有效。
局部变量:  定义在方法中变量,只在其声明的方法内有效。

6.匿名对象

1)匿名对象:没有对应变量名引用的实体

2)应用:

  • 对象对方法只调用一次时简化代码
  • 匿名函数作为实参传入其他函数。

7.内存分析

1)栈

栈的本质是一张线性表。JAVA中栈分为两种,JVM运行使用的全局栈和运行代码的方法时生成的方法栈。当程序调用方法时,系统都会为该方法建立一个方法栈,其所在方法中声明的变量就存放于方法栈中,方法结束就释放栈。比堆存取速度更快,但栈中的数据大小和生存期必须确定,缺乏灵活性。

简单地说:用于存放局部变量名(对象地址)。

2)堆

堆的数据结构是一种数组对象,是一种棵完全二叉树,用于存放对象实体。

3)池

有静态常量池和运行时常量池

  • 静态常量池:class文件中的常量池,不仅仅包含字符串(数字)字面量,还包含类、方法的信息。静态变量只保存一份,进行共享。
  • 运行时常量池:jvm虚拟机在完成类装载操作后,将class文件中的常量池载入到内存中,并保存在方法区中,我们常说的常量池,就是指方法区中的运行时常量池。

8.代码

完成修理汽车的功能

package day5;
/*需求分析:汽车有轮子,有颜色,有名字,有运行的方法修理厂有地址,有名字,有修理的方法* */
class Car{String name;String color;int state;public Car(String name,String color){this.name=name;this.color=color;state=3;}public void run(){state--;}
}
class CarFactory{String name="大风修理厂";public void repairing(Car car){car.state=3;System.out.println("修理成功!");}
}public class Repair {public static void main(String[] args){Car c=new Car("大黄蜂","yellow");CarFactory factory=new CarFactory();for (int i=0;i<10;i++){if (c.state==0){System.out.println("汽车坏了,请送往修理厂修理!");factory.repairing(c);}else{c.run();}}}
}

运行结果

汽车坏了,请送往修理厂修理!
修理成功!
汽车坏了,请送往修理厂修理!
修理成功!

9.总结

对于堆栈池的理解还是不够清楚,在后面的学习中需要进行更深入的了解。

JAVA学习笔记之面向对象(一)相关推荐

  1. Java学习笔记:04面向对象-内部类_访问修饰符_final

    04面向对象-内部类/访问修饰符/final 1.static的介绍 static:关键字,静态的 static的作用是用来修饰类中的成员 2.访问一个类中的某一个成员变量 方法一: _1.创建对象 ...

  2. 【原】Java学习笔记020 - 面向对象

    1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // ...

  3. 疯狂java学习笔记之面向对象(二) - 成员变量与局部变量

    Java变量按其作用域可分为:成员变量和局部变量.注意:在Java中是没有全局变量这个概念的 一.成员变量: 成员变量是在类中定义的变量,具体可分为类变量与实例变量--有无static修饰 实例变量的 ...

  4. 疯狂java学习笔记之面向对象(三) - 方法所属性和值传递

    方法的所属性: 从语法的角度来看:方法必须定义在类中 方法要么属于类本身(static修饰),要么属于实例 -- 到底是属于类还是属于对象? 有无static修饰 调用方法时:必须有主调对象(主语,调 ...

  5. 【原】Java学习笔记018 - 面向对象

    1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // ...

  6. 【Java】Java学习笔记(2)——Java面向对象基础作业函数题

    本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...

  7. Java学习笔记 六、面向对象编程中级部分

    Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...

  8. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

  9. java学习笔记7--抽象类与抽象方法

    接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...

最新文章

  1. 2021年大数据Spark(四十三):SparkStreaming整合Kafka 0.10 开发使用
  2. WMI技术介绍和应用——Instance/Method Provider
  3. pythonfind_python实现find -name的功能
  4. css框架:五大css流行框架的总结-css教程-PHP中文网
  5. 套接字编程--1(UDP协议编程,端口号,传输层协议,网络字节序)
  6. python tfidf特征变换_使用sklearn提取文本的tfidf特征
  7. 我是新来的,希望大家以后能多指教.
  8. 事业编,还有前途可谈么?
  9. 无法抗拒Minecraft给予超高的自由度和探索-微访谈
  10. JSP EL表达式中11个隐藏对象file:///D:/SoftwareFile/qq file/MobileFile/34090016310074682(1).png
  11. 五笔字根表识别码图_五笔输入法口诀(五笔字根表快速记忆图)
  12. 用gulp-imageisux智图api压缩图片
  13. java 服务器程序部署环境搭建
  14. php 威盾加密解密,解析php加密解密混淆的手段,如 phpjm,phpdp神盾,php威盾
  15. Maya群体堆积特效插件RubbishDumper垃圾倾倒夫1.0.3下载及教程
  16. 最优服务次序问题 和 汽车加油问题
  17. wifi mesh 开关
  18. 如何查看html的字体,如何检测网页中使用了哪种定义的字体?
  19. 电脑一直刷频,求解答
  20. Kubernetes HPA管理

热门文章

  1. tomcat启动不起来
  2. brLindo.WhatsBestn.vb v15.0.1.0 1CD 辑擎内NET案
  3. python基本数据类型之序列类型及通用操作
  4. iptables-ipset仅允许国内访问---DNAT入口
  5. blibli弹幕采集(爬取庆余年弹幕)
  6. #Enjoy Code# iOS获取设备型号 ,支持iPhone 6,iPhone 6s,iPhone6Plus, iPhone6sPlus,iPad Air2, iPad Mini 4 ETC..
  7. 如何使用onyx for mac显示更多系统硬件信息
  8. c语言模拟按键win d,Windows平台模拟按键方法总结
  9. oppor11点击Android,OPPOR11有什么隐藏功能 OPPOR11可以分屏操作吗?
  10. 关于uniapp 打包小程序包过大问题