2016.2.24(类)

访问修饰符private,默认,protected,public 在应用时的区别?

private:只有本类可以访问

默认:本类,同包可以访问

protected:本类,同包,子类,可以访问

public:可以任意对象访问。

封装有什么好处?

类的成员变量可以成为只读或者只写的

类可对存储在其成员变量中的内容有一个整体的规划

类的用户不需要知道类是如何存储数据的

静态

用static修饰的属性,所有对象共用,实际与对象无关
注意:1.与对象无关,与类有关 2.全类共享一个 3.预加载

static方法不能操作非static的属性和方法

原因:1.从设计上来说,static是类级别,与对象无关
2.从实现上来说,static修饰的是被首先加载的,因此非static的还没有被加载到内存,所以无法访问

什么时候使用static修饰?

工具类的工具方法可以使用 static修饰 (例:Math.random())

注意:static不能用来修饰构造,因为凡是static的都与对象无关,而构造是专门用来产生对象的

静态方法不可以访问非静态方法,非静态方法可以访问静态方法

实例初始化块:在产生对象的时候自动执行,在父类的构造方法之后,在本类的构造方法之前
使用量很少,因为完全可以把代码就写到本类构造方法前几行

静态初始化块:在加载的时候自动执行,只执行一次
使用量很高通常会把一些程序运行前的准备工作放在这里,让其加载期就完成

成员内部类的特点:1.可以有访问修饰符

2.class文件名格式:外部类类名+$+内部类类名.class

3.在本类的非静态任意方法中都可以new出来,但是其他类必须用外部对象.new出来内部对象

局部内部类的特点:1.不能有访问修饰符

2.class文件名:外部类类名+$+序号+内部类类名.class

3.只能本方法产生对象,然后使用

静态内部类(成员内部类特例):在本来的人任意方法中都已new出来,在第三方中要new出来,无需产生外部对象,只需要外部类类名.的方法就可以了

匿名内部类(局部内部类特例):由于没有类名,所以是在产生对象的时候用语句告诉JVM它的结构,只能用1次。需注意分号,括号的位置。

时间: 2024-12-27 13:05:16

2016.2.24(类)的相关文章

2016.10.24 继续学习

今天继续学习,进入面向对象的学习. 1.输出换行可以这样输出 System.out.println(); 2.数组学得有点蒙.... public class PracMultiArray { public static void main(String[] args) { int[][] a1 = {{1, 2, 4}, {3, 1, 2}, {14, 5, 3}}; System.out.println(a1[1][2]); for(int i=0;i<a1.length;i++){ for

2016.02.24总结

今天学习了JavaOO上册中的第8章,类的高级概念,其中的要点有: 1. 动态绑定:父类的引用可以指向子类的对象,但只能用子类中的父类部分的属性和方法. 2. 访问修饰符(可用于修饰属性,方法,类): private:只能用在本类中: 默认访问修饰符:可以用在本类,同包的子类和非子类中: protected:可以用在本类,同包的子类和非子类,以及不同包的子类中: public:可以用在所有类中. 3. OOP的封装就是通过访问修饰符来实现的,一般类中属性都设为私有的,并通过编写相应的getter

2016/1/24 笔记 集合类 异常

集合类: 一,与数组的区别 数组 ①数组必须先指定长度  ②长度固定  ③一般放基本数据类型 集合 ①不用指定长度  ②长度可变  ③一般访对象 二,分类 Collection list 1, Arraylist ①实现了可变数组  ②有序数据集合         ③方法 add(对象实例)  size()  get(索引)                                            set(索引,对象)                                 

【2016.11.24】HTML笔记与练习

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus?"> <meta name="Author" content=""> <meta name="

2016.2.24 dp练习

很经典的一道状压dp(似乎叫做旅行商问题),用f[i][s]表示在到达点i,已经经过的城市用二进制表示为s,于是方程就很简单了: f[i][s] = min { f[j][s ^ (1 << j)] + dis[j][i]| s & (1 << j) != 0} 然后用记忆化搜索即可,注意方向,因为dis[i][j]可能不等于dis[j][i].(下面的代码某个处理似乎没有必要) Code 1 #include<iostream> 2 #include<c

Python基础教程【读书笔记】 - 2016/7/24

希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第九波:第9章  魔法方法.属性和迭代器  在Python中,有的名称会在前面和后面都加上两个下划线,这种写法很特别.已经出现过一些这样的名称(比如__future__),这种拼写表示名字有特殊含义,所有绝不要在自己的程序中使用这种名字. 在Python中,由这些名字组成的集合所包含的方法称为魔法方法(或称特殊方法).如果对象实现了这些方法中的某一个,那么这个方法会在特殊的情况下被Python调用,而几乎没有直接调用

java总结2016.01.24

这周学习了循环语句,循环嵌套和方法,以下是这周的学习总结: while 和do/while语句中,需要注意的有以下几点:1. while 为先验循环,即先判断在执行,如判断为假则一次都不执行:do/while为后验循环,即至少执行一次. 2.循环用的变量一般为局部变量,因为循环结束了该变量就没用了. 3.do/while循环要注意的是,while判断语句结束后要加“:”号. 4.a+=b与a=a+b的区别:a+=b会自动转换类型为a的,a=a+b的会转为最大类型(如果b类型>a则会报错). 5.

2016/10/24 笔记总结

1.css3 动画:通过设置图片的opacity 来到hover时的动画: .nr_mod_service_hp_bottom_ts .inner .item .pic a .d_img { filter: alpha(opacity=100); opacity: 1; transition: 0.3s; -webkit-transition: 0.3s; -moz-transition: 0.3s; -ms-transition: 0.3s; -o-transition: 0.3s; } .n

免费是“毒药”-【中国IC微专栏】2016.5.24

前两天微信朋友圈看到某地云计算项目公开招标,某公司以零元价格中标,然后其他公司发起诉讼,控诉此招标不合规等等.虽然在企业界这样的案例不多,但这也绝非是企业界的孤例,至少我时有耳闻. 今天"免费"大行其道,很多人视"免费"为法宝,每每都是通过"免费"来颠覆某一传统行业,比如IT界最为知名的案例之一就是奇虎360通过将杀毒软件 免费,从而颠覆了传统的杀毒软件市场,让传统的杀毒软件霸主金山软件日落西山.更不用说这几年中国互联网思维的盛行,更是将&quo