不知不觉已经来到杭州学习一个多月了,回想起当初打算转行学习Java的自己,也是在毕业不久的时候,由于大学时所学的专业课大部分都是飘过,毕业时勉勉强强拿到了证书,所以在毕业季的时候并没有向所学专业投简历,带着自己对处于在大学时代自己的后悔打算在其他行业努力奋斗,然而由于一些原因让我对这些日子的工作所得到的回报并不满意以及对今后工作的性质不满足,为了工作疲于奔波,勉强维持生活的工作,每天单调的工作,繁杂的琐事,一日重复一日,看着其他室友,同学开始慢慢为自己的事业开始奋斗,而自己却只是在弥补大学空缺的那几年,没有目的的漂泊着。心有不甘,同时也让我认识到生活并不是像大学时光那样无所顾虑,没有一定的实力,过硬的技术,难以生存。所以选择了辞职。辞职过后的我带着对程序员这个行业的知之甚少来到黑马报道,怀揣着对今后生活的美好心愿,重新开始了学习的时光。由于在大学时学过一点C语言,想着自己应该能够在同样作为计算机语言的Java这个行业中学有所得吧。
在点招考试通过之后,顺利的来到了就业班,在这里学习的每一天都感觉自己过的很充实,接下来就说一说这段时间的所学的一些知识。
Static
Static 静态关键字(当多个对象中需要有数据被共享的时候,那么可以使用该static关键字)
用来修饰成员变量和成员方法
特点: 被所有的对象所共享;
可以直接使用类名来调用.
如先定义好了一个学生类Student,然后类中有成员static Stirng graduateFrom;
在测试类中即可以 Student.graduateFrom = “传智播客”;
静态所修饰的成员加载优先于对象
即随着类的加载而加载
例子:
有个Student类,有成员 String name;
int age;
static String graduateFrom;
有方法 public static void sleep() {}
public static void eat () {
System.out.print(name); 报错,因为name不是静态
System.out.print(garduateFrom); 可以
sleep(); 可以
play(); 不可以
}
public void play() {
System.out.print(graduateFrom);
eat();
}
在静态方法中没有是否有this对象?
在静态方法中没有this对象,因为静态方法随着类的加载而加载,优先于所有对象.
优点:
对对象的共享数据提供单独空间的存储,节省空间,没有必要每一个对象都存储一份.
可以直接被类名调用,不用在堆内存创建对象.
缺点:
访问出现局限性.(静态虽好,但只能访问静态)
Math的常用api:
math.pi; math.abs( ); math.ceil( ); math.floor( ); math.round( ); math.max(a,b); math.min(a,b); math.pow(a,b); math.random();
利用Math.random();获得1-10的整数;
int a = (int)(Math.random() * 10 ) + 1 ;
继承
继承:从多个类中抽取共性的内容做为一个父类,让其他类作为子类去继承父类获取到父类的成员.
继承的特点: 只支持单一继承.
支持多层继承.
一个子类只能有一个父类,但是可以多层继承即可以有爷爷
继承中成员变量的特点:
子类能获得父类非私有的成员变量,当子类和父类成员变量相同用子类的成员变量,不同的直接使用父类的成员变量.
继承中成员方法的特点
子类能使用父类的成员方法,当子类的成员方法和父类的成员方法名字相同时会发生重写.
方法重写的应用场景:
当父类的方法不能完全满足子类使用的时候,既可以保留父类的功能(沿袭、传承),还可以有自己特有的功能
方法重写的注意事项:
方法重写不能重写父类私有的方法;
权限必须大于等于父类方法的权限
重写利用注解@override
继承中构造方法的执行顺序:
子类的所有构造方法没有调用父类中的构造方法,则会在子类中的所有构造方法中的第一行默认添加super();调用父类的空参构造.
因为当我们对子类对象初始化时,必须要先给父类初始化,因为子类可能用到父类的内容.
在子类的构造方法也可以在第一行调用本类的其他构造方法,但是必定有一个构造方法要调用父类的构造方法.
super()和this()只能在构造方法的第一句,且只能存在一个.
Final: 修饰符,可以用于修饰类、成员方法和成员变量
Final所修饰的类不能被继承。
当final修饰方法时,不能被子类重写。如:
Class Animal{
public final void eat () {
System.out.print(“吃东西”);
}
}
Class Dog extends Animal{
Public void eat{ 这里就提示错误了!即不可重写
}
}
Final所修饰的变量是不能被修改的,是常量。
常量:字面值常量:1,2,3…………
自定义常量: 被final所修饰的成员变量,一旦初始化则不可改变
注意:自定义常量必须初始化,可以选择显示初始化(直接赋值)或者构造初始化.
|
|