JAVA学习笔记之面向对象(一)
作为初入开发的萌新,我根据黑马程序员的教学视频和课件整理总结,记录下自己的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学习笔记之面向对象(一)相关推荐
- Java学习笔记:04面向对象-内部类_访问修饰符_final
04面向对象-内部类/访问修饰符/final 1.static的介绍 static:关键字,静态的 static的作用是用来修饰类中的成员 2.访问一个类中的某一个成员变量 方法一: _1.创建对象 ...
- 【原】Java学习笔记020 - 面向对象
1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // ...
- 疯狂java学习笔记之面向对象(二) - 成员变量与局部变量
Java变量按其作用域可分为:成员变量和局部变量.注意:在Java中是没有全局变量这个概念的 一.成员变量: 成员变量是在类中定义的变量,具体可分为类变量与实例变量--有无static修饰 实例变量的 ...
- 疯狂java学习笔记之面向对象(三) - 方法所属性和值传递
方法的所属性: 从语法的角度来看:方法必须定义在类中 方法要么属于类本身(static修饰),要么属于实例 -- 到底是属于类还是属于对象? 有无static修饰 调用方法时:必须有主调对象(主语,调 ...
- 【原】Java学习笔记018 - 面向对象
1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // ...
- 【Java】Java学习笔记(2)——Java面向对象基础作业函数题
本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...
- Java学习笔记 六、面向对象编程中级部分
Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...
- java学习笔记13--反射机制与动态代理
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...
- java学习笔记7--抽象类与抽象方法
接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...
最新文章
- 2021年大数据Spark(四十三):SparkStreaming整合Kafka 0.10 开发使用
- WMI技术介绍和应用——Instance/Method Provider
- pythonfind_python实现find -name的功能
- css框架:五大css流行框架的总结-css教程-PHP中文网
- 套接字编程--1(UDP协议编程,端口号,传输层协议,网络字节序)
- python tfidf特征变换_使用sklearn提取文本的tfidf特征
- 我是新来的,希望大家以后能多指教.
- 事业编,还有前途可谈么?
- 无法抗拒Minecraft给予超高的自由度和探索-微访谈
- JSP EL表达式中11个隐藏对象file:///D:/SoftwareFile/qq file/MobileFile/34090016310074682(1).png
- 五笔字根表识别码图_五笔输入法口诀(五笔字根表快速记忆图)
- 用gulp-imageisux智图api压缩图片
- java 服务器程序部署环境搭建
- php 威盾加密解密,解析php加密解密混淆的手段,如 phpjm,phpdp神盾,php威盾
- Maya群体堆积特效插件RubbishDumper垃圾倾倒夫1.0.3下载及教程
- 最优服务次序问题 和 汽车加油问题
- wifi mesh 开关
- 如何查看html的字体,如何检测网页中使用了哪种定义的字体?
- 电脑一直刷频,求解答
- Kubernetes HPA管理
热门文章
- tomcat启动不起来
- brLindo.WhatsBestn.vb v15.0.1.0 1CD 辑擎内NET案
- python基本数据类型之序列类型及通用操作
- iptables-ipset仅允许国内访问---DNAT入口
- blibli弹幕采集(爬取庆余年弹幕)
- #Enjoy Code# iOS获取设备型号 ,支持iPhone 6,iPhone 6s,iPhone6Plus, iPhone6sPlus,iPad Air2, iPad Mini 4 ETC..
- 如何使用onyx for mac显示更多系统硬件信息
- c语言模拟按键win d,Windows平台模拟按键方法总结
- oppor11点击Android,OPPOR11有什么隐藏功能 OPPOR11可以分屏操作吗?
- 关于uniapp 打包小程序包过大问题