Java基础---第五天 面向对象
来源:互联网 发布:wine怎么使用 mac 编辑:程序博客网 时间:2024/06/06 02:33
一、面向对象 面向对象概念、类与对象的关系、封装、构造函数、this关键字、static关键字、单利设计模式
1、理解面向对象
(1)、面向对象是相对面向过程而言
(2)、面向对象和面向过程都是一种思想
(3)、面向过程强调是功能行为
(4)、面向对象将功能封装进对象,强调具备了功能的对象
(5)、面向对象是基于面向过程的
(6)、面向对象三个特征:封装,继承,多态
2、名词提炼法
人开门:
人{
开门(门){
门.开门();
}
}
门{
开门(){
操作门轴。
}
}
3、映射到java中,描述就是class定义的类
(1)、具体对象就是java在对内存中使用new建立实体。
(2)、类就是现实生活正事物的描述
(3)、对象就是这类事物,实实在在的个体
(4)、描述事物就是在描述事物的的属性和行为
(5)、属性对应类中的变量,行为对应的类中的函数(方法)
(6)、其实定义类,就是在描述食物,就是在定义属性和行为,属性和行为,属性和行为,共同成为类中的成员(成员变量,成员方法)
4、使用对象
(1)、使用 new 操作符来建立对象
(2)、对象.变量 对象.方法()
class Car{
private String color = "red";
private int num = 0;
public void run(){
System.out.pringln("color = "+color+" ; num = "+num);
}
}
class CarDemo{
public static void main(String[] args){
Car c = new Car();
c.color = "blue";
c.run();
}
}
5、成员变量,局部变量
(1)、作用范围:成员变量作用于整个类中,局部变量作用于函数中,或者语句中
(2)、在内存中的位置:成员变量在堆内存中,因为对象的存在,才在内存中存在。局部变量存在于栈内存中
6、匿名对象
匿名对象是对象的简化形式,
匿名对象两种使用情况
当对对象方法仅进行一次调用的时候
匿名对象可以作为实际参数进行传递
class Car{
private num;
void run(){
System.out.print("run");
}
public static void show(Car c){
System.out.print("run");
}
public static void main(String[] args){
new Car().run; //使用匿名对象
show(new Car());
}
}
7、封装概述
1、封装:是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式
2、好处
(1)、将变化隔离
(2)、便于使用
(3)、提高重用行
(4)、提高安全性
3、封装原则
(1)、将不需要对外提供的内容都隐藏起来
(2)、把属性都隐藏,提供公共方法对其访问
8、private 封装
(1)、private 关键字
是一个权限修饰符
用于修饰成员(成员变量和成员函数)
被私有化的成员只在本类中有效
(2)、常用之一
将成员变变量私有化,对外提供对应的set,get方法对其进行访问,提高对数据访问的安全性
之所以对外提供访问方式,就是因为可以在访问方式中加入逻辑判断等语句
对访问的数据进行操作,提高代码的健壮性
9、对象调用成员变量
对象名.成员变量
10、构造函数
(1)、特点
1、函数名与类名相同
2、不用定义返回值类型
3、不可以写return 语句
(2)作用:给对象进行初始化
(3)、主意
1、默认构造函数的特点
2、多个构造函数适宜重载的形式存在的
(4)、对象一建立就会调用与之对应的构造函数
(5)、当一个类中没有定义构造函数时,那么系统会默认给该类加入一个默认的空参数的构造函数
(6)、当在类中定义了用户的构造函数,则默认的构造函数将不存在
(7)、构造函数与一般方法的区别
构造函数在对象建立时执行,只有一次
一般方法时,只要调用就会执行
(8)、什么时候定义构造函数呢:当分析事物时,该事物存在剧本一些特性或者行为,那么将这些内容定义在构造函数中
11、构造代码块
(1)作用:给对象进行初始化,对象一建立,就运行,而且优先于构造函数执行。
(2)、和构造函数区别
构造代码快是给所有对象进行统一初始化
而构造函数是给对应的对象初始化
(4)、格式
{ }
(3)、
class Car{
private num;
{
System.out.print("run");
}
void run(){
System.out.print("run");
}
public static void show(Car c){
System.out.print("run");
}
public static void main(String[] args){
new Car().run; //使用匿名对象
show(new Car());
}
}
12、this关键字:区分局部变量和成员变量
(1)、this 代表本来的对象,代表它所在函数对象的引用。简单说哪个对象在调用 this 所在的函数,this就代表哪个对象
(2)、是用于区分局部变量和成员变量同名的情况
13、this 关键字 应用
class Demo{
privat int age = 0;
Demo(int age){
this.age = age;
}
void compare(Demo d){
return this.age==d.age; //this 为调用该函数的对象的引用,的为传过来的对象
}
public static void main(){
Demo d = new Demo(20);
Demo d2 = new Demo(21);
d.compare(d2);
}
}
14、this关键字在构造函数间调用
(1)、this 构造函数,只能放在构造函数的第一行,否则会报错,因为初始化要先执行
class Demo{
privat int age = 0;
privat String name = 0;
Demo(int age){
this.age = age;
}
Demo(String name,int age){
this.name = name; //这两个是一个,this 就相当于 对象(数据)
this(age); //
this.age = age;
}
public static void main(){
Demo d = new Demo(20);
Demo d2 = new Demo("zhangshuai",21);
}
}
1、理解面向对象
(1)、面向对象是相对面向过程而言
(2)、面向对象和面向过程都是一种思想
(3)、面向过程强调是功能行为
(4)、面向对象将功能封装进对象,强调具备了功能的对象
(5)、面向对象是基于面向过程的
(6)、面向对象三个特征:封装,继承,多态
2、名词提炼法
人开门:
人{
开门(门){
门.开门();
}
}
门{
开门(){
操作门轴。
}
}
3、映射到java中,描述就是class定义的类
(1)、具体对象就是java在对内存中使用new建立实体。
(2)、类就是现实生活正事物的描述
(3)、对象就是这类事物,实实在在的个体
(4)、描述事物就是在描述事物的的属性和行为
(5)、属性对应类中的变量,行为对应的类中的函数(方法)
(6)、其实定义类,就是在描述食物,就是在定义属性和行为,属性和行为,属性和行为,共同成为类中的成员(成员变量,成员方法)
4、使用对象
(1)、使用 new 操作符来建立对象
(2)、对象.变量 对象.方法()
class Car{
private String color = "red";
private int num = 0;
public void run(){
System.out.pringln("color = "+color+" ; num = "+num);
}
}
class CarDemo{
public static void main(String[] args){
Car c = new Car();
c.color = "blue";
c.run();
}
}
5、成员变量,局部变量
(1)、作用范围:成员变量作用于整个类中,局部变量作用于函数中,或者语句中
(2)、在内存中的位置:成员变量在堆内存中,因为对象的存在,才在内存中存在。局部变量存在于栈内存中
6、匿名对象
匿名对象是对象的简化形式,
匿名对象两种使用情况
当对对象方法仅进行一次调用的时候
匿名对象可以作为实际参数进行传递
class Car{
private num;
void run(){
System.out.print("run");
}
public static void show(Car c){
System.out.print("run");
}
public static void main(String[] args){
new Car().run; //使用匿名对象
show(new Car());
}
}
7、封装概述
1、封装:是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式
2、好处
(1)、将变化隔离
(2)、便于使用
(3)、提高重用行
(4)、提高安全性
3、封装原则
(1)、将不需要对外提供的内容都隐藏起来
(2)、把属性都隐藏,提供公共方法对其访问
8、private 封装
(1)、private 关键字
是一个权限修饰符
用于修饰成员(成员变量和成员函数)
被私有化的成员只在本类中有效
(2)、常用之一
将成员变变量私有化,对外提供对应的set,get方法对其进行访问,提高对数据访问的安全性
之所以对外提供访问方式,就是因为可以在访问方式中加入逻辑判断等语句
对访问的数据进行操作,提高代码的健壮性
9、对象调用成员变量
对象名.成员变量
10、构造函数
(1)、特点
1、函数名与类名相同
2、不用定义返回值类型
3、不可以写return 语句
(2)作用:给对象进行初始化
(3)、主意
1、默认构造函数的特点
2、多个构造函数适宜重载的形式存在的
(4)、对象一建立就会调用与之对应的构造函数
(5)、当一个类中没有定义构造函数时,那么系统会默认给该类加入一个默认的空参数的构造函数
(6)、当在类中定义了用户的构造函数,则默认的构造函数将不存在
(7)、构造函数与一般方法的区别
构造函数在对象建立时执行,只有一次
一般方法时,只要调用就会执行
(8)、什么时候定义构造函数呢:当分析事物时,该事物存在剧本一些特性或者行为,那么将这些内容定义在构造函数中
11、构造代码块
(1)作用:给对象进行初始化,对象一建立,就运行,而且优先于构造函数执行。
(2)、和构造函数区别
构造代码快是给所有对象进行统一初始化
而构造函数是给对应的对象初始化
(4)、格式
{ }
(3)、
class Car{
private num;
{
System.out.print("run");
}
void run(){
System.out.print("run");
}
public static void show(Car c){
System.out.print("run");
}
public static void main(String[] args){
new Car().run; //使用匿名对象
show(new Car());
}
}
12、this关键字:区分局部变量和成员变量
(1)、this 代表本来的对象,代表它所在函数对象的引用。简单说哪个对象在调用 this 所在的函数,this就代表哪个对象
(2)、是用于区分局部变量和成员变量同名的情况
13、this 关键字 应用
class Demo{
privat int age = 0;
Demo(int age){
this.age = age;
}
void compare(Demo d){
return this.age==d.age; //this 为调用该函数的对象的引用,的为传过来的对象
}
public static void main(){
Demo d = new Demo(20);
Demo d2 = new Demo(21);
d.compare(d2);
}
}
14、this关键字在构造函数间调用
(1)、this 构造函数,只能放在构造函数的第一行,否则会报错,因为初始化要先执行
class Demo{
privat int age = 0;
privat String name = 0;
Demo(int age){
this.age = age;
}
Demo(String name,int age){
this.name = name; //这两个是一个,this 就相当于 对象(数据)
this(age); //
this.age = age;
}
public static void main(){
Demo d = new Demo(20);
Demo d2 = new Demo("zhangshuai",21);
}
}
- Day05第五天java基础----------面向对象
- Java基础---第五天 面向对象
- 零基础学习JAVA.第五天:面向对象
- 黑马程序员--Java基础学习(面向对象)第五天
- java面向对象1_第五天
- Java学习第五天:面向对象
- java笔记第五天面向对象
- 面向对象第五天
- 黑马程序员——第五天(Java面向对象基础)
- java 第五天 面向对象(基础篇之this关键字)
- Java 基础 第五天
- JAVA基础第五天
- java基础第五天
- java基础第五天
- 黑马程序员java学习第五天,面向对象
- JAVA基础第五天学习日记_面向对象开发思想、匿名对象、封装、私有、构造函数
- java基础第五天——面向过程及其方法
- 第五天面向对象之多态特性
- 调试IOS页面布局
- 织梦(dedecms)仿站教程第十七讲—通用底部的制作
- 统计信息
- ios 根据url获取html,并解析
- php中的单引号和双引号
- Java基础---第五天 面向对象
- 【算法】AES算法优化
- 使用ListView应该注意的地方
- 电影站上线第30天 IP慢慢突破300的一点小经验
- 有12个乒乓球,其中一个是坏的,请你用天枰称3次将坏球分辨出来。你会用什么方法呢?
- hdu 2037 今年暑假不AC
- Transaction类型
- [MSSQL]【SQL SERVER 2005+版本行转列示例】(2012年1-8月水源槑党25强榜单新鲜出炉)
- 使用PLSQL Developer从oracle数据库 导入导出excel表数据