Java自学笔记(第五天)面向对象--char[]和String--封装--构造函数--this

//面向过程的思想就是只有动词,面向对象的思想就是名词+动词

冰箱.打开

冰箱.存储

冰箱.关闭

//名词提炼法

//面向对象的三个特征:封装,继承,多态

(*)类和对象的关系

类:对事物的描述(属性,行为)(成员变量,成员方法)

对象:事物实体(值,具体做法)

/*

(*)(*)Java中没有string关键字,而String是字符串类

(*)(*)char[]和String互转:

*/

//对象.对象成员

//每个new都生成一个新对象,并在堆内存中分配空间

(*)成员变量和局部变量

成员变量作用于整个类中,局部变量作用于函数中,或者语句中。

成员变量在堆内存中,因为对象的存在,才在内存中存在。局部变量存在于栈内存中。

//匿名对象

使用方式一:当对象的成员变量或方法只调用一次时,可以用匿名对象来完成,这样写比较简化

使用方式二:可以将匿名对象作为实际参数进行传递----------如下图所示

(*)封装:指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

好处--将变化隔离,便于使用,提高重用性,提高安全性。

原则--将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。

//函数就是最小封装体,类也是封装,包也是封装,框架是封装。

//访问修饰符:private同类中可以访问,被private私有化的类成员不能被对象调用

(*)私有仅仅是封装的一种表现形式

(*)构造函数:new的过程就是调用类的构造函数,分配堆内存空间,给成员变量赋初始值,没有赋值就是默认值

//当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数。

//当系统中定义构造函数时,系统不会默认一个空参数构造函数。

(*)new ,(Person p = new Person(10,"abc");)意思就是在堆内存中new一个新的Person类型空间,并把()中的参数值,赋于相对应的成员变量。()无参数就是赋默认值。

//构造函数只在new的时候运行一次

//构造代码块:给对象进行较统一格属性的初始化,优先于构造函数执行

(*)this-关键字:就是这个对象(实例),调用方法的对象(实例)。代表它所在函数所属对象的引用。

//构造函数间的相互调用用this,this()需在第一行

时间: 2024-10-04 23:08:50

Java自学笔记(第五天)面向对象--char[]和String--封装--构造函数--this的相关文章

Java自学笔记(一)

假期重新拾起Java来学,先是拿来<Think in Java>看,但不幸的是,那本书真心有点生涩乏味.于是上豆瓣寻找到一本李刚老师写的<疯狂Java讲义>,这几天看了一百来页,来总结总结.网上对于此书的评论,捧的大致上说这本书相对于国外教材来说,语言贴近中国人思维,容易理解,而且内容翔实:批的说这本书太罗嗦,让人捉不到重点.实际上,就我这几天的阅读看来,这本书是非常适合我的,在细节方面的解释,以及在底层原理的揭示,在我看来,正是学习一门新语言不可或缺的东西. 对于像我这样从汇编语

Java自学笔记(三)——输入

因为最近学的内容实际操作比较多,所以新的笔记就用代码为主体吧! 本回主要内容是输入,Java中主要用Scanner类和BufferedReader.总体来说不难,但有些细节可以总结,看代码: import java.io.*; import java.util.Scanner; public class ioTest { public static void main(String[] args) throws Exception { //Scanner提供了多种构造器,不同的构造器可以接受文件

第五周JAVA学习笔记(五)

将指定目录下的所有文件显示到列表框(JList)组件中, :效果图如下:                  import java.awt.BorderLayout; import java.io.File; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JScrollPane; public class kuang { public st

Java自学笔记(四)—— 集合类总结

今天来总结总结Java集合类.集合类又叫容器类,它封装了很多我们学过的数据结构,这些现成的集合类,实现了各种操作,使用起来非常方便,今天的总结也是以代码为主. 集合大致分为Set.List.Map三种体系.但实际上Java集合类主要由两个接口派生而出,Collection接口和Map接口. Collection接口的子接口: 1.Set,无序,元素不可重复 2.Queue 队列 3.List,有序,元素可以重复 一个个来细说,Set,可以想像成是一个大箱子,里面的东西是无序的,但是有一个条件就是

java学习笔记(五)枚举

原文出处:http://www.cnblogs.com/linjiqin/archive/2011/02/11/1951632.html 在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的"数据集",春夏秋冬四个数据元素组成了四季的"数据集". 在java中如何更好的使用这些"数据集"呢?因此枚举便派上了用场,以

java基础笔记(6)----面向对象的三大特性

简介:面向对象的三大特性就是封装,继承,多态,是面向对象的核心. 封装 简介:封装是类的边界,可以对数据起到保护作用 特性:属性私有,提供公开的get/set方法 属性私有:private 数据类型 变量名:---->private修饰的属性只能在本类使用 公开的get/set方法 public修饰---- >在任何类中都可以使用 get方法:----获取属性的值 public 数据类型 getXxx(){ return this.属性名 } set方法:----修改属性的值 public v

Java自学笔记(二)

这几天学的内容真是很有料,Java这门语言的核心设计思想,开始慢慢揭开面纱. 话说回来,这两天在看<疯狂Java讲义>的时候,偶尔会对一些问题产生疑惑,而这时候我重新拿起了<Thinking in Java>,我发现这本书现在对我来说,当作一本参考式的资料还是非常不错的,因为里面的内容,真的太丰富了,而且原理级的内容也讲的很到位,打算看完<疯狂>,再把<Thinking in Java>过一遍. static关键字: 好吧,先说为什么会出现这样的东西.我们说

【疯狂Java学习笔记】【理解面向对象】

[学习笔记]1.Java语言是纯粹的面向对象语言,这体现在Java完全支持面向对象的三大基本特征:封装.继承.多态.抽象也是面向对象的重要组成部分,不过它不是面向对象的特征之一,因为所有的编程语言都需要抽象. 2.面向对象开发方法比较结构化开发方法的优势在于可以提供更好的可重用性.可扩展性.可维护性. 3.基于对象和面向对象的区别:基于对象也使用了对象,但是无法通过现有的对象作为模板来生成新的对象类型,继而产生新的对象,也就是说,基于对象没有继承的特点.而面向对象有继承,而多态则是建立在继承的基

Java自学笔记(第二天)

Java语言基础组成: (1)关键字:被赋予特殊含义的单词,main不是关键字 (2)标示符:程序中自定义的一些名称,自定义名称,由26个字母大小写,数字0-9,_$组成,数字不可以开头,不可以使用关键字,Java中严格区分大小写,在起名字时,为了提高阅读性,要尽量有意义.包名,所有字母都小写.类名和接口名,所有单词的首字母大写.变量名和函数名,第一个单词首字母小写,第二个单词开始每个单词首字母大写.常量名,所有字母都大写. (3)注释:单行,多行,文档(Java特有) (4)常量:常量表示不能