Java编程思想(第4版)6——7章节小结 - Angel's Blog.

ing
 
 
软件开发,程序设计,前端设计
 
 
首页 > code > Java编程思想(第4版)6——7章节小结

Java编程思想(第4版)6——7章节小结

 

java中的访问权限:

在java中,类如果没有使用或指定任何的访问权限修饰符,则使用默认的包访问权限;

java中提供的访问修饰:

1)public:可以被该类的成员和非该类的成员访问。

2)private:只能该类的成员访问。

3)protected:可以被当前类的成员和子类成员访问。

4)friendly:没有修饰符,只有类自己和同一包下的类访问。

注意:类的访问权限只能是包访问权限或者public。

具体的访问权限罗列:

访问修饰符的访问
 所处位置 private friendly protected public
同一个类 可以 可以 可以 可以
同一个包下的其他类 不可以 可以 可以 可以
不同包的子类 不可以 不可以 可以 可以
不同包且不是子类 不可以 不可以 不可以 可以

 

如果不想让其他的人访问类,可以将构造方法设置为私有。

有一个特殊的demo,单例模式:

demo:

 

public class Single
{

	private static Single single;
	private Single() {}

	public static Single getInstunts()
	{
		if(single==null)
		{
			single=new Single();
		}
		return single;//返回对象的引用.

	}
	private String name="名字";
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public static void main(String[] args)
	{
		Single single=Single.getInstunts();
//		System.out.println(single.getName());
		Single single1=Single.getInstunts();
		single1.setName("我的名字");
		System.out.println(single.getName());
		System.out.println(single1.getName());
		//达到了有且只能创建一个对象.
	}
}

面向对象programming的优势:代码重复利用:1)组合、2)继承。

符合is – a的关系可以用继承,符合has – a关系则可以用组合。

向上转型:

这个概念:由导出类(派生类)转换成基类。

也就是说,将具体明确的类型转换为比较大众通用的类型,这样无须担心转换过程中的安全问题。

导出类的方法可能要比基类(父类)会更多也会更具体更明晰,导出类是父类的一个超集。

也就是说,如果需要向上转行,则必须使用到继承。

demo1:

 

public class Android extends Mobile
{
	public static void main(String[] args)
	{
		Android android = new Android();
		Mobile.ring(android);//调用Mobile类的静态方法ring(),向上 转型
	}
}

class Mobile
{
	public void size()
	{
		System.out.println("My cellphone is so cool...hia~hia.");
	}
	public static void ring(Mobile mobile)//接受的引用
	{
		mobile.size();
	}
}

空白final:

空白final是在声明为final类型但是没有赋初值,但是在使用前要确保final初始化。

所以空白final无形中使用起来更加灵活:

demo2:

 

public class NewFinal
{
	private final int i = 0;
	public int getI() {
		return i;
	}
	public int getJ() {
		return j;
	}
	public Judge getJu() {
		return ju;
	}
	private final int j;
	private final Judge ju;
	/**
	 * 构造方法
	 */
	public NewFinal()
	{
		//在构造方法中初始化的空白final
		j = 0;
		ju = new Judge(8);
		System.out.println("j = " + j + " , ju = " + ju.getI() + ".");
	}
	public NewFinal(int a)
	{
		//在构造方法中初始化的空白final
		j = a;
		ju = new Judge(9);
		System.out.println("j = " + j + " , ju = " + ju.getI() + ".");
	}
	/**
	 * main()测试
	 * @param args
	 */
	public static void main(String[] args)
	{
		new NewFinal();
		new NewFinal(100);
//		NewFinal n = new NewFinal(500);
	}
}

class Judge
{
	public Judge(int x)
	{
		i = x;
	}
	private int i;
	public int getI() {
		return i;
	}
	public void setI(int i) {
		this.i = i;
	}
}

这样也就做到了调用不同的构造方法,还能维持恒定不变。

final 在方法中作为修饰传入参数,不允许修改参数的值,但允许进行“读”的操作。

final 类不能被继承。

使用final修饰的方法的原因:将final修饰的方法保持不变,防止在继承的过程中方法重写。

 

或者通过RSS 关注本站的更新 ^ O ^ 。” —  by  转载请注明:来自 Angel's Blog.
本文永久链接: http://www.0ee.com/2011/01/05/summary-thinking-in-java-6-7-chapter.html
 
分类: code标签: , ,
 
  • QQ书签
  • Del.icio.us
  • 百度收藏
  • Google
  • 饭否
  • FriendFeed
 

 
评论 (8) Trackbacks (0)
发表评论 Trackback
 
8 Comments Contributed by Visitors
  1.     水车 2011年1月6日11:25 1#

    我不太懂JAVA,支持一下。

  2.     Angel 2011年1月7日11:28 2#

    @88250
    嘿嘿,,看到前辈的那篇文章了,double check我还第一次接触,非常感谢前辈的指导!内牛满面的学习了。。。

  3.     古墓候梅 2011年1月7日05:59 3#

    太专业了,不懂!!!!

  4.     88250 2011年1月7日09:36 4#

    提到单例模式,这里有篇文章可以看看:http://88250.b3log.org/articles/2010/03/31/1270072980000.html

  5.     Angel 2011年1月7日11:26 5#

    @水车
    嘿嘿,感谢支持,大家共同学习 ok

  6.     Angel 2011年1月7日11:29 6#

    @古墓候梅
    嘿嘿,看不懂可以稍微接触一些。 ok

  7.     Mucid 2011年1月8日11:25 7#

    友元报道,在蛋疼的复习 ok ok

  8.     Angel 2011年1月8日13:33 8#

    @Mucid
    嘿嘿,最近您忙着考试吧?我猜应该是。。。

Leave Comments Here...

:) :-D :( :-o 8-O :-? 8) lol :-x :-P oops cry evil twisted wink ? idea :-| arrow mrgreen roll !

(required)

(required)

网址随您("http://"可以省略)

(Ctrl+Enter)

  • 本站不会泄露您的 Email 地址, 敬请放心.
  • 本站已开启缓存, 请不要重复提交评论.
  • 请注意: 带有 《广告(链)、不健康、或者 产品名字》 的评论一律视为spam.
  • 支持常用 HTML 标签调用, 插入 HTML 标签需注意: < == &lt;> == &gt;.
  • 仅当某人针对您的评论做出回应时, 您才会收到由本站发出的邮件通知.
  • 如您希望以相同方式通知某位网友, 请点击  按钮进行回复.
  • 允许在评论中使用如下代码: 
    <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> 
    <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> 
    .
  • 鼠标悬浮到评论中的 @someone 区域即可自动显示 someone 的评论内容.
 
 
  • 正在加载...