黑马程序员————学习笔记(第五天)
来源:互联网 发布:新人座谈会心得知乎 编辑:程序博客网 时间:2024/05/16 06:57
—————————— ASP.Net+Android+IOS开发、.Net培训、期待与您交流!——————————
面向对象(一)
特征
封装、继承、多态。
使用步骤:找对象、建立对象、用对象、并维护对象之间的关系。
类与对象的关系
类:对现实生活中事物的描述。
对象:这类事物,实实在在存在的个体。
练习代码:CarDemo.java
/*描述汽车汽车拥有颜色和轮胎数和运行方法*/class Car{String color = "红色"; //汽车颜色int num = 4; // 汽车轮胎数void run() // 运行方法{System.out.println(color + " , " + num);}}class CarDemo{public static void main(String[] args) {Car c = new Car(); // 类类型变量指向对象// 改变颜色c.color = "蓝色";c.run();}}
成员变量与局部变量
作用范围:
成员变量:作用于整个类中。
局部变量:作用与函数或语句中
在内存中的位置:
成员变量:存在于堆内存中,因为对象的存在,才在内存中存在。
局部变量:存在于栈内存中。
匿名对象的应用
格式:如 new Car();
使用方式:
1.当对对象的方法只进行一次调用时,可以用匿名对象来完成,这样写比较简化,如果对一个对象进行多次调用时,必须给对象起一个名字。
2.可以将匿名对象作为实际参数进行传递。
封装
定义
指隐藏对象的属性和实现细节,仅对外提供公共的访问方式。
好处
1.将变化隔离
2.便于使用
3.提高代码重用性
4.提高代码安全性
封装原则
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。
private:权限修饰符,用于修饰类中的成员,私有化的成员只能在本类中使用。
注意:私有只是封装的一种表现形式。
对外提供访问方式,可以在访问方式中加入逻辑判断等语句,对语句进行判断可以提供代码的健壮性。
构造函数
特点:
1.函数名与类名一致。
2.不用定义返回值类型。
3.不可以写return语句。
作用:
给对象初始化。
注意:
1.当类中没有定义构造函数时,系统默认给该类添加一个无参的构造函数
2.多个构造函数是以重载形式存在。
构造函数与一般函数的不同:
1.书写不同。
2.构造函数在对象一建立就运行,给对象初始化。而一般函数是对象调用才执行。
3.构造函数值运行一次(在对象建立时),而一般函数可以被该对象调用多次。
定义构造函数的时机:
在分析事物时,该事物存在就具备一些特性或行为时,那就将这些内容定义在构造函数中。
构造代码块
形式:
{
初始化语句;
}
作用:
1.给对象进行初始化。
2.初始化不同对象的共性初始化内容。
注意:构造代码块在对象一建立就运行,优先于构造函数执行
this关键字
应用:
1.用于区分成员变量与局部变量同名的情况
2.当本类功能内部使用到了本类对象,都用this表示
3.构造函数之间互相调用。
含义:
this:代表本类的对象。
哪个对象调用了this对象所在的函数,this就代表哪个对象。
注意:
1.this语句只能放在构造函数第一行。
2.不能出现两个构造函数之间互相调用的情况。
练习代码:Demo01.java
class Demo01{public static void main(String[] args) {Car c1 = new Car(); // 实例化默认汽车对象c1.showInfo();Car c2 = new Car("红色"); // 实例化带颜色参数的汽车对象c2.showInfo();Car c3 = new Car("五颜六色",8); // 实例化带两个参数的汽车对象System.out.println("c3设置前:");c3.showInfo();System.out.println("c3设置后:");c3.setColor("土豪金色");c3.setNum(16);c3.showInfo();boolean b = c3.compare(new Car("白色",6)); // 通过匿名对象参数传递,比较轮胎数是否相同String str = "不";if (b)str = "相";System.out.println("这两辆车的轮胎数" + str + "同");}}class Car{private String color;private int num;/*构造代码块,用于初始化颜色及轮胎数*/{this.color = "黑色";this.num = 3;}/*无参构造函数*/public Car(){}/*带颜色参数的构造函数*/public Car(String color){this.color = color;}/*带颜色和轮胎数参数的构造函数*/public Car(String color,int num){this(color); // this语句实现构造函数之间的调用this.num = num;}/*颜色的设置方法*/public void setColor(String color){this.color = color;}/*颜色的获取方法*/public String getColor(){return color;}/*轮胎数设置方法*/public void setNum(int num){if (num >= 3)this.num = num;elsethis.num = 3;}/*获取轮胎数*/public int getNum(){return num;}/*比较当前车轮胎数与其它车的轮胎数是否相同*/public boolean compare(Car car){return this.num == car.num;}/*显示汽车信息*/public void showInfo(){System.out.println("颜色:" + color + ",轮胎数:" + num);}}
—————————— ASP.Net+Android+IOS开发、.Net培训、期待与您交流!——————————
- 黑马程序员————学习笔记(第五天)
- 黑马程序员——java基础学习笔记——第五天
- 黑马程序员 —— 面向对象(第五天)
- 黑马程序员--- 学习笔记(第五天)
- 黑马程序员--java学习笔记第五天
- 黑马程序员————第五天
- 黑马程序员———OC学习第五天(内存管理)
- 黑马程序员——Objective-C 第五天课程学习总结
- 黑马程序员——第五天(Java面向对象基础)
- 黑马程序员——java第五天:面向对象(类、对象、变量、封装、构造、this)
- 黑马程序员----break,continue,函数(方法,第五天学习笔记
- 黑马程序员 —— JavaAPI_集合框架 (第十五天)
- OpenStack学习笔记————第五天
- 《30天自制操作系统》学习笔记——第五天
- 黑马程序员_java基础笔记第五天
- 黑马程序员----基础学习第五天
- 黑马程序员——>第五天<面向对象(匿名对象-封装-构造代码块-this关键字)>
- 黑马程序员第五天
- 词频统计包----nltk
- 最大熵理论及其应用
- c/c++程序运行时的内存情况
- android安全机制简介
- PAT 1017. A除以B
- 黑马程序员————学习笔记(第五天)
- PHP实现一维数组转换成二维数组实例
- [leetcode]Palindrome Partitioning
- LCD 调试经验总结
- spring MVC配置详解
- Android 命名规范(总结一)
- 转:大部分人努力程度之低,根本轮不到拼天赋
- Leetcode之remove系列
- Ubuntu添加开机自动启动程序的方法