java 中的switch -case语句

switch(常量表达式)
case1 常量:
执行语句1;
break;(可选语句)
方法区存放:常量池和静态域,类加载信息;
栈中存放局部变量,堆中存放的是new 出来的结构;
属性(成员变量)和局部变量的区别:
1.类中声名的位置不同;局部变量声明在方法内,方法形参,代码块内,构造器形参,构造器内部变量,
2.权限修饰符:
属性:可以在声明变量时指明其权限,使用权限修饰符,
3.默认初始化值的情况:
属性:类的属性,根据其类型,都有默认初始化值
局部变量:没有初始化值,在我们调用局部变量之前一定要显示赋值,
4.二者在内存中加载的位置不同;属性加载到堆空间中。局部变量加载在栈中;
引用类型的变量其只可能存储null或者是地址值;
匿名对象:new Person();没有显示赋值给一个变量;只能调用一次;
方法的重载:在同一个类中,方法的名称是可以一样的,只要其参数个数不一样或者参数类型不一样就可以;(overload)
通过对象调用方法时,通过 方法名->参数列表–确定指定的方法;
程序设计追求高内聚:类的内部数据操作细节自己完成,不允许外部干涉;低耦合;仅对外部暴露少量的方法用于使用;
赋值操作 受到属性的数据类型和存储范围的制约;加入额外的限制条件;可以通过加权限(声明为私有private);
封装性的体现:我们将类的属性私有化,同时提供公共的public(get)方法来获取此属性的值,还有setXXX方法设置该属性的值;拓展:不对外暴露的私有的方法;
java规定的4种权限:private<缺省(同一个包)<protected(不同的包的子类)<public(同一个工程) 这4种权限可以用来修饰什么呢?都可以用来修饰:属性方法,构造器以及内部类;
修饰类的话只能使用 缺省,public
protected:同一个工程下不同包的子类可以看到
缺省权限下:不同包的子类的方法是看不到的
public权限下的:不同包的子类是可以看到的;
总结封装性:java提供了四种权限修饰来修饰类及类的内部结构,体现类及类的内部结构在被调用时的可见性;
java的构造器(构造方法)(constructor:构造器)
构造器的作用:用来创建对象;Person p=new Person();//这个就是所谓的构造器;如果没有显示构造构造器,系统提供一个空参的构造器,其权限看类的权限;权限修饰符,与类同名(形参列表) {} 构造器也可以重载;(也就是可以给属性赋值 初始化);没有返回类型;一旦显示地构造了构造器,系统不在提供默认的空参构造器;
总结属性赋值的先后顺序:属性可以在默认初始化,显示初始化,构造器中,对象通过setXXX方法,设置属性值,其最后的结果取决于所使用的赋值方法
javabean:java语言写成的可重用组件;
所谓javabean:类是公共的;有一个无参的公共构造器;有属性,且有对应的getset方法,
this关键字的使用:可以用来修饰属性,方法,构造器;this 理解为当前对象或者当前正在创建的对象;this.属性,this.方法;通常情况下选择省略这个关键字;如果这个类的属性和方法的形参同名时 ,使用this.变量来区分,表示此变量是属性;而非形参;
this可以调用构造器:类的构造器中可以显示使用"this(形参列表)",调用本类中指定的其他构造器;构造器中不能通过this()调用自己;如果一个类中有 n个构造器,最多有(n-1)个this(形参列表),这个表达必须放在方法的首行;构造器最多只能声明一个this(形参列表),这种方法可以简化代码。
package,import的使用
1.package关键字的使用:为了更好地实现项目中类的管,提供包的概念;
2.使用package 声明类或者接口所属的包;声明在源文件的首行;
3.包,标识符,遵循标识符的命名规则命名规范;4.每"."一次代表一层文件目录;
同一个包下不能命名同名的类或者接口;不同的则可以;
mvc的设计模式:(view,controll,model)
这种将程序输入输出,数据处理以及数据的展示分离开来的设计模式,
model层:主要处理数据,
controller层:处理业务逻辑
view层:显示数据
import关键字的使用:
1.import :在源文件中导入指定包下的类;
2.如果使用的类或者接口是在java.lang下定义的,则可以省略import结构。3.如果使用的类或者接口是本包下定义的,也可以省略import结构;如果在源文件中使用了不同包下同名的类,则必须至少有一个类需要以全类名的方式使用;也就是包含包名在内的路径;某个包下的子包也要重新导入该包;
import static//表示导入指定类或者接口中的静态结构;

java中的继承:一个父类可以有多个子类;可以被多个子类继承;2.一个类只能有一个父类(单继承);类可以实现多个接口;
object类:所有的java类 除object类之外都直接或间接继承于java.lang.object类;
所有类都具有object类中的功能;
区分重载和重写的区别:重写是覆盖,将父类的方法重新覆盖,也就是参数不变,但是方法体不一样;重载是方法中形参的类型还有形参的个数是可以不一样的;

子类重写的方法的权限修饰符的范围是可以不小于父类被重写的方法的权限修饰符;
特殊情况:子类不能重写父类中声明为private的方法;返回值类型:父类被重写的方法的返回值类型是void或者基本数据类型,重写的方法的返回值类型也是void/基本数据类型,必须是完全一样的;–父类被重写的方法是A类型;则子类重写的方法的返回值类型可以是Al类或A类的子类型;子类重写的方法抛出的异常不大于父类被重写的方法t抛出的异常;(alt+"/"可以直接调出是否需要重写的语句)
子类和父类中的同名的方法要么都声明为非static(考虑重写),要么都声明为static(这个不是重写) 也就是说只有非static才考虑是不是重写;
super()关键字的使用:可以理解为父类的,可以用来调用属性,方法,构造器;子父类中存在同名的属性;可以用super.属性(方法)来调用父类的属性或者方法,
当我们通过子类的构造器创建子类对象,我们一定会直接或者间接地调用父类构造器,进而调用父类的父类的构造器;直到调用了java.lang.Object类中空参的构造器为止,正因为加载了父类中所有的结构,所以可以看到内存中有父类中的结构,子类对象才可以考虑进行调用,虽然创建子类对象时,调用了父类的构造器,但是只是调用了其构造器,但并没有new新对象,也就是只创建了一个对象;

对象的多态性:可以理解为一个事物的多种形态
父类的引用指向子类的对象;
当调用子父类同参数的方法时,实际执行的是子类重写父类的方法;–虚拟方法的调用;(编译看左,执行看右),,有了对象多态性之后,我们编译器只能调用父类中声名的方法,在运行期我们实际执行的子类中的方法;4.多态性使用前提:要有类的继承关系;子类中要重写父类的方法;对象的多态性只适用于方法,不适用于属性;多态是运行时行为;

instance of 关键字的使用:(调用子类特有的属性和方法)使用强制类型转换符,Person p1=new Man()
Man m1=(Man)p2;强转有可能出现classcastException异常错误;
为了避免这种异常错误,所以在强转之前使用instance of 关键字;instanceof A:判断对象a是否是A的实例,如果是则返回true;否则返回false;
finalize()方法在垃圾回收之前调用;一般不主动调用;
String,Date,File,包装类等都重写了object的equals()方法,比较两个对象的试题内容是否相等;如果要比较两个对象中某个属性的内容是否相等,则需要重写euqals()方法;object中定义的方法和==的作用是相同的,所以比较的是两个对象的地址是否相等;equals方法可以自动生成;
string是放在常量池中的,
toString()方法的使用:若不重写的话则调用的是object类中的toString方法 输出的是 类型@地址;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值