Java 笔记 及 面向对象 成员变量与局部变量的区别 面向对象3大特征:这里只写了封装,构造函数 .this关键字
来源:互联网 发布:数据库附加错误602 编辑:程序博客网 时间:2024/05/02 15:41
一、面向对象
1.面向对象及面向过程
都是一种思想
面对过程:强调的是功能行为
关注的问题是需要哪些步骤
程序=算法+数据
面对对象:强调的是具备了功能的对象
关注的是解决问题需要找哪些对象 找对象。
程序=对象+消息
Java中面向对象三的特征:
封装 继承 多态(抽象)
什么是对象:
万物
Java程序中最基本的单位是类 在类中描述事物
成员方法 就是事物的行为 先把static去掉
成员变量 就是事物的属性 在类中 方法外
Car类与以前写的类不一样
1.没有main函数,是因为可以通过
2.变量的定义位置和原来不一样了
放在方法里 是局部变量
放在类中方法外的是成员变量(全局变量——
class Demo3
{
String brand="小米";//属性
double price=699.00;
public void call(){//行为
System.out.println("打的电话");
}
public void aendMessage(){
System.out.println("发消息");
}
public static void main(String[] args)
{
Demo3 c3=x;
Demo3 x=new Demo3();
x.call();
x.aendMessage();
System.out.print( x.brand+" \r\n"+x.price);
}
}
成员变量与局部变量的区别
1.在类中位置不同
成员变量:类里面 方法外
局部变量:方法中
2.在内存中的位置不同
成员变量:在堆内存(成员变量属于对象,对象进堆内存)
局部变量:在栈内存(局部变量属于方法。方法进栈内存)
3.生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
4.初始值不同
成员变量:有默认初始值
局部变量:没有默认初始值。必须定义 赋值 才能使用
成员变量:在方法外的堆中的对象 有默认值
局部变量:在方法类的栈中的方法 无默认值
基本数据类型
整型:--->0
char:----->\u0000
浮点------>0.0
boolean----->false
引用数据类型:
默认的初始值为null
当成员变量和局部变量发生重名是 就近原则
方法的形式参数是类名的时候 如何调用
//如果你看到了一个方法参数列表是类类型的这里其实需要传的是该类对象
匿名对象的概述和应用
没有名字的对象
面向对象3大特征:
一、封装
1.封装
广义:类和方法定义本身,就是封装性的体现
狭义:private+set/get方法
是指对象的属性和实现细节,仅对外提供公共的访问方式
class Demo4
{
String name;
private int age;
//private 私有 被私有修饰的成员 只能在当前类中使用
//private 只是一种封装形式,不等于封装
public void setAge(int a){//set 存入
if (a>0 && a<=200)
{
age=a;
}else{
System.out.print("不行");
}
}
public void speak(){
System.out.print(" sdasd");
}
public static void main(String[] args)
{
Demo4 x=new Demo4();
x.name="张三";
x.setAge(20);
x.speak();
}
}
关键字特点:1.是个权限修饰符
2.可以修饰成员变量和成员方法
3.被其修饰的成员,只能在本类中被访问
当你将一个成员变量用private修饰后,如果想要在其他类中调用 需要提供对应的setxxx() getxxxx()方法
private仅仅是封装的一种体现形式,不能说封装就是私有
public 私有 被私有修饰的成员 只能在当前类中使用
好处:
1.隐藏实现细节,提供公共的访问方式
2.提高代码/数据安全性
3.提高代码的复用性
2.构造函数(Constructor);
什么是构造函数:构造器/构造方法 用来创建对象并给成员变量初始化的
格式:访问权限:修饰符(可略) 没有返回值 方法名(和类名一模一样){
//方法体
}
特点:
1.方法名和类名相同(大小写也要相同)
2.没有返回值类型 连void 都没有
3.访问权限修饰符 可省略
4.没有具体的返回值 return
5.在创建对象的时候,jvm会给我们调用构造方法 构造方法不能用对象.调用
注意:
当自己写了构造方法 那么jvm将不再给你提供无参的构造方法了
如果想要写有参构造 那么 无参构造也写上
有参构造 只是多了一种对成员变量的赋值方式
3.this关键字
this.成员
属性:访问本类的成员属性
方法:访问本类的成员方法
this();
访问本类中的构造函数
this-->指的就是当前类对象的一个引用
//错误: 对this的调用必须是构造器中的第一个语句
/*
this.name = name;
this(name);
初始化的动作要先执行 如果初始化中还有初始化 那么先执行那个更细节的初始化
1.面向对象及面向过程
都是一种思想
面对过程:强调的是功能行为
关注的问题是需要哪些步骤
程序=算法+数据
面对对象:强调的是具备了功能的对象
关注的是解决问题需要找哪些对象 找对象。
程序=对象+消息
Java中面向对象三的特征:
封装 继承 多态(抽象)
什么是对象:
万物
Java程序中最基本的单位是类 在类中描述事物
成员方法 就是事物的行为 先把static去掉
成员变量 就是事物的属性 在类中 方法外
Car类与以前写的类不一样
1.没有main函数,是因为可以通过
2.变量的定义位置和原来不一样了
放在方法里 是局部变量
放在类中方法外的是成员变量(全局变量——
class Demo3
{
String brand="小米";//属性
double price=699.00;
public void call(){//行为
System.out.println("打的电话");
}
public void aendMessage(){
System.out.println("发消息");
}
public static void main(String[] args)
{
Demo3 c3=x;
Demo3 x=new Demo3();
x.call();
x.aendMessage();
System.out.print( x.brand+" \r\n"+x.price);
}
}
成员变量与局部变量的区别
1.在类中位置不同
成员变量:类里面 方法外
局部变量:方法中
2.在内存中的位置不同
成员变量:在堆内存(成员变量属于对象,对象进堆内存)
局部变量:在栈内存(局部变量属于方法。方法进栈内存)
3.生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
4.初始值不同
成员变量:有默认初始值
局部变量:没有默认初始值。必须定义 赋值 才能使用
成员变量:在方法外的堆中的对象 有默认值
局部变量:在方法类的栈中的方法 无默认值
基本数据类型
整型:--->0
char:----->\u0000
浮点------>0.0
boolean----->false
引用数据类型:
默认的初始值为null
当成员变量和局部变量发生重名是 就近原则
方法的形式参数是类名的时候 如何调用
//如果你看到了一个方法参数列表是类类型的这里其实需要传的是该类对象
匿名对象的概述和应用
没有名字的对象
面向对象3大特征:
一、封装
1.封装
广义:类和方法定义本身,就是封装性的体现
狭义:private+set/get方法
是指对象的属性和实现细节,仅对外提供公共的访问方式
class Demo4
{
String name;
private int age;
//private 私有 被私有修饰的成员 只能在当前类中使用
//private 只是一种封装形式,不等于封装
public void setAge(int a){//set 存入
if (a>0 && a<=200)
{
age=a;
}else{
System.out.print("不行");
}
}
public void speak(){
System.out.print(" sdasd");
}
public static void main(String[] args)
{
Demo4 x=new Demo4();
x.name="张三";
x.setAge(20);
x.speak();
}
}
关键字特点:1.是个权限修饰符
2.可以修饰成员变量和成员方法
3.被其修饰的成员,只能在本类中被访问
当你将一个成员变量用private修饰后,如果想要在其他类中调用 需要提供对应的setxxx() getxxxx()方法
private仅仅是封装的一种体现形式,不能说封装就是私有
public 私有 被私有修饰的成员 只能在当前类中使用
好处:
1.隐藏实现细节,提供公共的访问方式
2.提高代码/数据安全性
3.提高代码的复用性
2.构造函数(Constructor);
什么是构造函数:构造器/构造方法 用来创建对象并给成员变量初始化的
格式:访问权限:修饰符(可略) 没有返回值 方法名(和类名一模一样){
//方法体
}
特点:
1.方法名和类名相同(大小写也要相同)
2.没有返回值类型 连void 都没有
3.访问权限修饰符 可省略
4.没有具体的返回值 return
5.在创建对象的时候,jvm会给我们调用构造方法 构造方法不能用对象.调用
注意:
当自己写了构造方法 那么jvm将不再给你提供无参的构造方法了
如果想要写有参构造 那么 无参构造也写上
有参构造 只是多了一种对成员变量的赋值方式
3.this关键字
this.成员
属性:访问本类的成员属性
方法:访问本类的成员方法
this();
访问本类中的构造函数
this-->指的就是当前类对象的一个引用
//错误: 对this的调用必须是构造器中的第一个语句
/*
this.name = name;
this(name);
初始化的动作要先执行 如果初始化中还有初始化 那么先执行那个更细节的初始化
阅读全文
0 0
- Java 笔记 及 面向对象 成员变量与局部变量的区别 面向对象3大特征:这里只写了封装,构造函数 .this关键字
- Java重修之路(六)面向对象初识,类与对象,成员变量,局部变量,封装,构造函数,构造代码块,this关键字
- day05面向对象特征,类的变量和方法,封装,构造函数,this关键字
- 面向对象特征,类的变量和方法,封装,构造函数,this关键字
- Java基础05:面向对象;类与对象;匿名对象;成员变量;局部变量;封装;构造函数
- 面向对象、匿名对象、成员、封装、主函数、成员变量、局部变量、构造函数、this、静态、主函数
- Java基础知识_day07_(面向对象,构造方法,封装,成员变量与局部变量)
- 【JavaSE学习笔记】面向对象_01(入门,匿名对象,成员变量,局部变量,封装,this,构造方法)
- 7 面向对象(成员变量和局部变量的区别,类作为形式参数的问题,匿名对象,封装,private关键字,this关键字,构造方法,类的初始化过程,static关键字)
- 面向对象-成员变量、局部变量-封装
- 成员变量和局部变量的区别、方法的形参为类的情况及匿名对象、封装(private关键字)、this关键字、构造方法、static关键字
- JAVA基础再回首(四)——面向对象思想、类与对象、成员/局部变量、匿名对象、封装、private、this、构造方法
- 面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】
- 黑马程序员_Java基础_面向对象(概述、类与对象关系、成员变量、封装private、构造函数和构造代码块、this关键字)
- Java语言基础{Java_se(05)}-面向对象-封装-构造方法-成员变量,局部变量
- Java基础:面向对象(1)--对象的概念、成员变量与局部变量、匿名对象、类的封装
- java学习日记_14:面向对象之成员变量与局部变量的区别。
- 面向对象_成员变量_ 局部变量_匿名对象_封装_构造函数_构造代码块
- 排列组合(2)
- U盘安装CentOS7最正确姿势
- file_get_contents("php://input") php://input 输入流
- C语言的函数概述——参考C语言入门
- 网易实习被虐史
- Java 笔记 及 面向对象 成员变量与局部变量的区别 面向对象3大特征:这里只写了封装,构造函数 .this关键字
- 用两个队列实现栈
- django Get css,js文件返回304无法正常加载的问题
- Java API文档的生成(javadoc.exe)
- 4-13z-index值大的压住小的
- MathJax基础(11):让括号变大
- windows启动winload.exe的数字签名错误问题
- 单链表之C++封装
- POJ2393 Yogurt factory (贪心)