javaSE基础05
javaSE基础05:面向对象
一、数组
数组的内存管理 : 一块连续的空间来存储元素。
Int [ ] arr = new int[ ];
创建一个int类型的数组,arr只是一个变量,只是数组的一个引用地址,局部变量存在一个栈中,java中没有全局变量,只有成员变量,在堆区中存放
数组中常见错误:
1.NullPointerExcepation:空指针异常
原因:引用的类型变量没有指向任何的对象,在这种情况下还访问了它的属性,一个对象如果使用完了不会马上释放,只是将这个对象变为一个垃圾对象,由垃圾回收机制自己来释放。程序员没有办法操作释放时间
2.ArrayIndexOutOfBoundsExcepation:数组下标越界
查找数组中是否有这个元素:binarySearch(查找的数组,要找的数);返回的是一个int类型的数(索引)。
Java中数组中存在多维:二维数组,三维。。。
二维数组定义格式:
数据类型[ ] [ ] 数组名 = new 数据类型 [ ] [ ];
动态初始化:
数据类型[ ] [ ] 数组名 = new 数据类型 [ ] [ ];
注意:前面中括号数值指的是二维数组元素的个数,后面一个是指二维数组中一维数组的元素个数
静态初始化:
数据类型[ 行 ] [列 ] 数组名称 = { { 元素1 ...}, { 元素1 ...}, { 元素1 ...}};
|
Int[ ] [ ] arr = { { 1, 2, 3}, { 4, 5 }, { 6, 7}}; Int num = arr [2] [1] ; // 7 |
二维数组中的元素一定是一维数组
想要接收二维数组中的元素,先要有一个一维数组来接收
总结:数组的特点
1.数组中只能存同一种数据类型的数据
2.数组会给存入的元素默认分配一个索引值,索引从0开始
3.数组一旦初始化,长度就固定了
4.数组中的元素的内存地址是连续的
二、Java也是属于面向对象的编程:
面向对象的三大特征:封装、继承、多态
对象:真实存在的唯一的事物
(面向对象编程:oop)思想:力图使计算机语言中的事物描述和自然中的事物尽可能保持一致
面向对象的核心:找到合适的对象做合适的事情
Java中如何来找合适的对象:
1.sun已经指定好的类,通过订制好的类创建对象,需要认识这些类
2.自定义类,通过自定义类来创建对象
类中包含:
属性和方法
类的定义格式:
Class 类名{
属性(成员变量):描述事物的公共特点
格式:数据类型 变量名
String name;
方法:描述事物的行为(做什么事情)
修饰符 返回值类型 方法名 (参数列表){ 具体的实现}
Public :公开的方法,任何人都可以访问
Private :私有的,只能自己使用
|
例: Public void run(){ System.out.println( “ 老师讲课啦,赶快回教室!”); } } |
访问属性:
对象.属性名
设置属性:
对象.属性名 = 设置的值;
对象的引用变量是存在栈区的,但是对象本身是存在堆区的,成员也是随着对象存在堆区
成员变量和局部变量的区别:
A)定义的位置:
1.成员变量定义在类中,方法外
2.局部变量是定义在方法中
B)作用域上:
1.成员变量在当前类中都可以使用
2.局部变量只能在方法中使用
C)生命周期上:
1.成员变量:随着对象的创建而创建,随着对象的消失而消失
2.局部变量:随着方法的调用而创建,出了方法的作用域就销毁
D)初始值来区分:
1.成员变量,如果没有赋值,它是有默认值的
int 默认是0
Float 默认是0.0f
Double 默认是0.0
Boolean 默认是false
Char 默认‘ ’
String (引用类型)null;
2.局部变量:
局部变量默认是没有初始值的,必须先初始化(声明变量并赋值)才能使用
成员变量在当前类中是可以直接使用的,如果变量需要在其他类中使用,就需要创建对象(目前是这个样子)
三、类和对象的关系
类是对同一类事物(对象)的抽象,对象是实际存在的该类的各个实体
javaSE基础05的更多相关文章
- javaSE基础07
javaSE基础07 一.static静态修饰符 用了static修饰的变量就会变成共享的属性,只会初始化一次,在内存中只存在一个,并且每个对象都可以访问,存放在方法区(数据共享区) 1.1 stat ...
- javaSE基础06
javaSE基础06 一.匿名对象 没有名字的对象,叫做匿名对象. 1.2匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值的,无法获取属性值(现阶段只能设置和拿到一个属性值.只能调用一次方 ...
- javaSE基础04
javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...
- javaSE基础03
javaSE基础03 生活中常见的进制:十进制(0-9).星期(七进制(0-6)).时间(十二进制(0-11)).二十四进制(0-23) 进制之间的转换: 十进制转为二进制: 将十进制除以2,直到商为 ...
- javascript基础05
javascript基础05 1.变量的作用域 变量既可以是全局,也可以是局部的. 全局变量:可以在脚本中的任何位置被引用,一旦你在某个脚本里声明了全局变量,你就可以 在这个脚本的任何位置(包括函数内 ...
- javaSE基础02
javaSE基础02 一.javac命令和java命令做什么事情? javac:负责编译,当执行javac时,会启动java的编译程序,对指定扩展名的.java文件进行编译,生成了jvm可以识别的字节 ...
- JavaSE基础01
JavaSE基础篇01 ------从今天开始,我就学习正式java了,O(∩_∩)O哈哈~,请大家多指教哦 一.Windows常见的dos命令 操作dos命令: win7 --->开始 --- ...
- javase基础复习攻略《十》
按照计划本篇为大家总结JAVA的网络编程,什么叫网络编程呢?网络编程!=网站编程,对于这一点大家一定要注意,很多小朋友都曾经这么认为.既然谈到网络编程,咱们先了解一下网络的基础知识,什么是计算机网络? ...
- javase基础复习攻略《二》
今天就开始的真正走进JAVASE的世界,本篇介绍的是:JAVASE基础语法,大家如果有C语言的基础,对于本节内容一定感觉非常轻松,编程语言之间的都是相通的,只不过C语言属于面向过程编程,而JAVA语言 ...
随机推荐
- iOS事件传递->处理->响应
前言: 按照时间顺序,事件的生命周期是这样的: 事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view.寻找最合适的view的底层实现.拦截事件的处理)->找到最合适的view后 ...
- python笔记-字符串函数总结
字符串函数: chr() 数字转ASCII chr(96)="a" ord() ASCII转数字 ord("a")=96 isspace() 判断是否为空格 s ...
- BZOJ 3931: [CQOI2015]网络吞吐量
3931: [CQOI2015]网络吞吐量 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1555 Solved: 637[Submit][Stat ...
- JavaScript中的类型转换
1.隐式类型转换 ①== 如果相等操作的两个变量不是同一类型,那么相等运算符会尝试进行一些类型转换: 如果一个是null,一个是undefined,则他们相等: 如果一个值是数字,另一个是字符串,先将 ...
- UOJ58 【WC2013】糖果公园
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- Zabbix监控redis status
概述 zabbix采用Trapper方式监控redis status 原理 redis-cli info命令得到redis服务器的统计信息,脚本对信息分两部分处理: (1)# Keyspace部分为Z ...
- Chrome 开发工具之Console
前段时间看git的相关,记的笔记也大致写到了博客上,还有些因为运用不熟,或者还有一些疑惑点,暂时也不做过多纠缠,之后在实践中多运用得出结论再整理分享吧. 工欲善其事,必先利其器.要想做好前端的工作,也 ...
- 怎么把电脑的word,txt,pdf等文件拷贝到iPhone手机上
之前都是用的qq什么的传文件,电脑发送到qq上.今天尝试了一下用itunes把电脑上的文件夹弄到iPhone上. 1.首先,打开电脑的偏好设置,找到共享如图: 打开它,勾选文件共享. 2.把手机和电脑 ...
- Reset Identity Column Value in SQL Server (Identity Reset)
前言:今天在群里看到有人在问SQL Server自增值重置问题(sqlserver identiy column value reset ) 闲话少说,直接上代码: 正文: --create tabl ...
- OOP,WEB开发实用小技巧
偶然读到一篇博客,记录一下心得.这种设计对于新手来说一般是想不到的,它充分的发挥了OOP语言的特性,让代码专用而清爽.这是不是重构的思想呢? 我们在写业务层的时候,有很多方法是重复功能的,我们就可以使 ...