成员变量

面向对象中成员变量和局部变量的区别。

隐身守侯 提交于 2019-12-02 08:31:26
A:在类中的位置不同。 成员变量:在类中方法外。 局部变量:在方法定义中或方法声明上。 B:在内存中的位置不同。 成员变量:在堆内存中。(成员变量隶属于对象,对象进堆内存) 局部变量:在栈内存中。(局部变量隶属于方法,方法进栈) C:生命周期不同 成员变量:随着对象的存在而存在,消失而消失。 局部变量:随着方法的调用而存在,方法的调用完毕而消失。 D:初始化值不同 成员变量:有初始化值 局部变量:没有初始化值,必须赋值才可以使用。 注意事项:局部变量和成员变量的名称可以一样,在方法中使用的时候使用的是就近原则。 基本数据类型变量包括:int long byte float double short char boolean。 引用数据类型变量包括:枚举、数组、接口、类。 来源: https://www.cnblogs.com/wangffeng293/p/11737699.html

枚举注解反射整合详解

梦想的初衷 提交于 2019-12-02 04:54:53
一丶枚举 1 ** 2 * 一、枚举类的使用 3 * 1.枚举类的理解:类的对象只有有限个,确定的。我们称此类为枚举类 4 * 2.当需要定义一组常量时,强烈建议使用枚举类 5 * 3.如果枚举类中只有一个对象,则可以作为单例模式的实现方式。 6 * 7 * 二、如何定义枚举类 8 * 方式一:jdk5.0之前,自定义枚举类 9 * 方式二:jdk5.0,可以使用enum关键字定义枚举类 10 * 11 * 三、Enum类中的常用方法: 12 * values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。 13 * valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”。如不是,会有运行时异常:IllegalArgumentException。 14 * toString():返回当前枚举类对象常量的名称 15 * 16 * 四、使用enum关键字定义的枚举类实现接口的情况 17 * 情况一:实现接口,在enum类中实现抽象方法 18 * 情况二:让枚举类的对象分别实现接口中的抽象方法 19 * 20 * @author shkstart 21 * @create 2019 上午 10:17 22 */ 23 public class SeasonTest { 24 ​ 25 public

Java之路---Day09(继承)

五迷三道 提交于 2019-12-02 03:55:37
2019-10-23-22:58:23 目录   1.继承   2. 区分成员变量重名的方法   3. 区分成员方法重名的方法   4. 继承中重写与重载的区别   5. 继承中覆盖重写的注意事项   6. 继承中覆盖重写的设计原则   7. 父子类构造方法的特点   8. Super关键字的三种使用方法   9. This关键字的三种用法   10. Super和This关键字图解 继承   继承: 是 面向对象 软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。 继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。   注意:     1.继承是多态的前提,如果没有继承就没有多态     2.在继承关系中,"子类就是一个父类",也就是说,子类可以被当作父类看待   作用:继承主要解决的问题就是 共性抽取   子类特点:     1.子类可以拥有父类的"内容"     2.子类还可以拥有自己专有的内容   Java中继承的三个特点:     1.单继承     2.多级继承     3.多种继承(俗话就是有很多子孙)   继承的格式:     定义父类的格式:(普通类的定义)       public class 父类名称{         语句体       }     定义子类的格式:       public class 子类名称

this关键字、static关键字、block块、封装类以及继承、import、修饰符的初步了解

前提是你 提交于 2019-12-02 03:42:25
this关键字 定义 在类的方法定义中使用this关键字代表使用该方法的引用. this即"自己",代表对象本身,谁调用代表谁.在成员方法中或构造器中隐式的传递. this的两种用法 构造器中 作用:可以调用 本类 中的其他构造器 具体用法可参照2.2的中的代码 成员变量与局部变量 作用:当成员变量与局部变量同名时,可以采用this关键字代指当前对象的属性(即 成员变量 ) 具体用法: public class Computer01 { public String brand; public double price; public String color; //this的用法:代指当前对象的属性值 public Computer01(String brand,double price){ this.brand=brand;//this.brand是当前对象的属性名,brand是传入值(局部变量) this.price=price; System.out.println("带参构造器1"); } public Computer01(String brand,double price,String color){ this(brand,price); //this的用法:调用构造器1 this.color=color; System.out.println("带参构造器2"); }

java 继承访问成员变量

北城以北 提交于 2019-12-02 00:20:16
package java09; //创建父类 public class Fu { int numFu = 10; int num =100; public void methodFu(){ System.out.println(num); } } package java09; //创建子类 public class Zi extends Fu { int numZi = 20; int num =200; public void methodZi(){ System.out.println(num); } } package java09; /* 在父类的继承关系中,如果成员变量重名,则创建子类对象时,访问有两种方式: 直接通过子类对象访问成员变量: 等号左边是谁就优先用谁,没有则向上找 间接通过成员方法访问成员变量: 该方法属于谁,就优先用谁,没有则向上找 * */ public class DemoExtendsField { public static void main(String[] args) { Fu fu = new Fu();//创建父类对象 System.out.println(fu.numFu);//10 只能使用父类的东西,没有任何子类的内容 System.out.println("=============="); Zi zi = new Zi();

oop面向对象【类与对象、封装、构造方法】

删除回忆录丶 提交于 2019-12-01 23:43:35
今日内容 1.面向对象 2.类与对象 3.三大特征 —— 封装 4.构造方法 教学目标 1.能够理解面向对象的思想 2.能够明确类与对象关系 3.能够掌握类的定义格式 4.能够掌握创建对象格式,并访问类中的成员 5.能够完成手机类的练习 6.能够理解对象的内存图 7.能够说出成员变量和局部变量的区别 8.能够理解 private 关键字的含义 9.能够说出 this 关键字可以解决的问题 10.能够理解构造方法的含义 11.能够用封装的思想定义一个标准类 第 1 章 面向对象思想 1.1 面向对象思想概述 概述 Java 语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下, 使用 Java 语言去设计、开发计算机程序。 这里的 对象 泛指现实中一切事物,每种事物都具备自己的 属性 和 行为 。面 向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。 举例 洗衣服 : 面向过程:把衣服脱下来 --> 找一个盆 --> 放点洗衣粉 --> 加点水 --> 浸泡 10 分钟 --> 揉一揉 --> 清洗衣服 --> 拧干 --> 晾 起来 面向对象:把衣服脱下来 -->

Lock---tryLock()方法

不羁的心 提交于 2019-12-01 23:21:55
用锁的最佳实践: 永远只在更新对象的成员变量时加锁; 永远只在访问可变的成员变量时加锁; 永远不在调用其他对象的方法时加锁。 tryLock()方法相关参考: https://www.cnblogs.com/donefive/p/9620133.html tryLock(long time, TimeUnit unit)方法和tryLock()方法是类似的,只不过区别在于这个方法在拿不到锁时会等待一定的时间,在时间期限之内如果还拿不到锁,就返回false。如果如果一开始拿到锁或者在等待期间内拿到了锁,则返回true。 来源: https://www.cnblogs.com/bbsh/p/11720857.html

java变量,初始化快,构造函数的执行顺序

时间秒杀一切 提交于 2019-12-01 22:30:43
对于JAVA中类的初始化是一个很基础的问题,其中的一些问题也是易被学习者所忽略。当在编写代码的时候碰到时,常被这些问题引发的错误,感觉莫名其妙。而且现在许多大公司的面试题,对于这方面的考查也是屡试不爽。不管基于什么原因,我认为,对于java类中的初始化问题,有必要深入的了解。Java类的初始化,其实就是它在JVM的初始化问题(类加载的问题),对于它在JVM中的初始化是一个相当复杂的问题,是给专家们来探讨的,所以在这里我只是对一些容易忽略的问题,发表一下个人观点: 1,在一个类的内部(不考虑它是另一个类的派生类):很多人认为,类的成员变量是在构造方法调用之后再初始化的,先不考虑这种观点的正确性,先看一下下面的代码: [java] view plain copy class Test01...{ public Test01( int i)...{ System.out.println( "Test01 of constractor : " + i); } } public class Test02 ...{ private Test01 t1 = new Test01( 1 ); private int n = 10 ; public Test02()...{ System.out.println( "Test02 of constructor : " + n); } private

java内部类总结

本小妞迷上赌 提交于 2019-12-01 22:28:36
一.内部类基础 在 Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。 1.成员内部类 成员内部类是最普通的内部类,它的定义为位于另一个类的内部,形如下面的形式: class Circle { double radius = 0; public Circle(double radius) { this.radius = radius; } class Draw { //内部类 public void drawSahpe() { System.out.println("drawshape"); } } } 这样看起来,类Draw像是类Circle的一个成员,Circle称为外部类。成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员)。 class Circle { private double radius = 0; public static int count =1; public Circle(double radius) { this.radius = radius; } class Draw { //内部类 public void drawSahpe() { System.out

java-day09

大憨熊 提交于 2019-12-01 19:47:16
接口   就是一种公共规范标准,只要符合规范标准,就可以大家通用,多个类的公告规范,引用数据类型 格式   public interface 接口名称{} 接口都能定义抽象方法   public abstract 返回值类型 方法名称();   修饰符必须是public abstract,但可以省略不写 使用   接口不能直接使用,必须有一个实现类来实现该接口   public interface 接口名称{}   public 实现类名 implements 接口名称{}   实现类必须覆盖重写接口所有的抽象方法 默认方法   public default 返回值类型 方法名称(参数列表){}  用于解决接口升级问题,会被实现类继承 静态方法   public static 返回值类型 方法名称(参数列表){}  不能通过实现类对象调用,通过接口名称直接调用静态方法 接口名称.静态方法() 私有方法   抽取一个公共方法,用来解决默认方法间重复代码,但不应该被实现类使用 普通私有方法   private 返回值类型 方法名称(参数列表){} 静态私有方法   private static 返回值类型 方法名称(参数列表){} 接口中可以定义成员变量,但必须使用public static final修饰,可省略不写 接口中的成员变量必须被赋值,应为成员变量有默认值