类的设计分析:
  1.根据需求抽取属性.(名词几乎都是属性)
  2.属性私有化(private)
  3.生成setter和getter方法
  4.可以根据需要添加构造函数.
  5.根据需求抽取其他方法.(动词几乎都是方法.)
  6.方法中尽量避免输出语句,调用处输出.

构造方法.
  特点: 方法名与类名相同.并且没有返回类型.
  作用: 实例化对象. 初始化对象的属性值.
    如果没有创建构造方法,那么系统会添加一个无参什么都不做的构造方法.一旦自定义了构造方法,那么
    系统添加的构造方法就会消失.

普通方法的重载:
  在同一个类中,出现多个方法名相同,参数不同(个数,类型,顺序)的方法.这些方法就是重载方法.

构造方法的重载:
  参数不同.

this关键字.

  表示本类对象.只要是类,该类都存在一个对象this.
    1.调用本类中的属性.
    2.本类中构造方法.
    3.表示调用者对象.

  注意:使用this调用构造方法时,必须放在该构造方法的第一行。

String类 字符串类. (对象字符的操作) 凡是系统带的类都可以从api文档中查找.

  常用的方法:

  equals();比较两个字符串是否相同.(内容)
  public char charAt(int index):获取字符串指定位置上的字符.
  public String concat(String str)将指定字符串连接到此字符串的结尾。
  public boolean endsWith(String suffix)测试此字符串是否以指定的后缀结束.
  public boolean startsWith(String suffix)测试此字符串是否以指定的前缀开始.
  boolean contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true。
  public int indexOf(int ch)返回指定字符在此字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
  public int lastIndexOf(int ch);返回指定字符在此字符串中最后一次出现处的索引.
  public int length()返回此字符串的长度.
  public String replace(char oldChar,char newChar)覆盖
  public String[] split(String regex):拆分字符串.
  public String substring(int beginIndex):截取字符串.
  public char[] toCharArray():把字符转化为字符数组.

static关键字.静态的,全局的
  修饰属性.该变量所有全局变量. 属于该类的所有对象公用. static内存.
  修饰方法.表示 静态方法.该方法只能调用静态成员.
  在其他类中调用该类中的静态成员.1.通过类名调用. 2.对象调用.
  在其他类中调用该类中的非静态成员.1.对象调用.

    注意:如果一个方法要由主方法直接调用,则必须是“public static 返回类型 (参数列表){}”,因为主方法是静态方法,不能直接调用非静态方法。

代码块{}

  普通代码块:在方法中. 当方法被执行时.直接在一个方法中出现的{}就称为普通代码块

  构造代码块:在类中定义. 当实例化对象时,先调用构造代码块,再调用构造方法.而且每次实例化对象都会被执行.比如多个对象的公共初始化信息可以放在构造代码块中.

 public class CodeDemo02{
public CodeDemo02(){
System.out.println("========这是构造方法=========");
}
//这是构造代码块,而且在new对象时,构造代码块优先构造方法执行
{
System.out.println("=========这是构造块!=========");
  }
  public static void main(String[] args){
   new CodeDemo02();
   new CodeDemo02();
  }
}

         
  静态代码块: 在类中但是用static修饰.在类加载时被执行,而且只会执行一次.

 public class CodeDemo03{
  static{
    System.out.println("这是主类中的静态代码块!");
  }
  public static void main(String[] args){
   new Demo();
   new Demo();
   new Demo();
  }
}
class Demo{
  static{
   System.out.println("这是Demo类中的静态代码块!");
  }
  {
   System.out.println("这是Demo类中的构造块!");
  }
  public Demo(){
   System.out.println("这是构造方法!");
  }
}

  注意:当实例化对象时,先调用构造代码块,再调用构造方法.而且每次实例化对象,构造代码块都会被执行。如果同时包含静态代码块,优先于构造代码块执行。

构造方法的私有化

单例设计模式,作用来控制对象的产生,无论程序怎样执行都只会产生一个对象。

外界无法执行实例化对象.
1.单例模式. (1.饿汉式 2.懒汉式)
1.构造方法私有化.
2.在本例中实例化该类的对象.并使用static修饰.
3.提供一个静态方法把本类中实例化的对象返回

class People{
/**
* 恶汉单例设计模式
*/
private static People p=new People();
private People(){
}
public static People getPeople(){
return p;
}
}
class Person{
/**
* 懒汉单例设计模式
*/
private static Person p1;
private Person(){
}
public static Person getPerson(){
if (p1==null) {
p1=new Person();
return p1;
}
return p1;
}
}

Java基础笔记10的更多相关文章

  1. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  2. 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错

    原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...

  3. JAVA自学笔记10

    JAVA自学笔记10 1.形式参数与返回值 1)类名作为形式参数(基本类型.引用类型) 作形参必须是类的对象 2)抽象类名作形参 需要该抽象类的子类对象,通过多态实现 3)接口名为形参 需要的是该接口 ...

  4. JAVA基础(10)——IO、NIO

    转载:http://blog.csdn.net/weitry/article/details/52964948 JAVA基础系列规划: JAVA基础(1)——基本概念 JAVA基础(2)——数据类型 ...

  5. 黑马程序员----java基础笔记上(毕向东)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...

  6. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  7. 夯实Java基础系列10:深入理解Java中的异常体系

    目录 为什么要使用异常 异常基本定义 异常体系 初识异常 异常和错误 异常的处理方式 "不负责任"的throws 纠结的finally throw : JRE也使用的关键字 异常调 ...

  8. Java基础笔记05-06-07-08

    五.今日内容介绍 1.方法基础知识 2.方法高级内容 3.方法案例 01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. 02方法的定义格式 ...

  9. Java基础笔记1

    java (开源,跨操作系统)j2ee jre java基础 javaoop java高级 JDK(JAVA developer Kitool): java开发工具 (开发人员使用) JRE(java ...

随机推荐

  1. Fiddler抓包工具使用详解

    一.Fiddler简介 Fiddler是最强大最好用的Web调试工具之一, 它能记录所有客户端和服务器的http和https请求.允许你监视.设置断点.甚至修改输入输出数据.Fiddler包含了一个强 ...

  2. Java中迭代器Iterator的使用

    Java集合类中Map接口下的相关类并没有像Collection接口的相关类一样实现get()方法,因此在要实现遍历输出的场景中没法直接用get()方法来取得对象中的数据,但Java本身提供了另一种遍 ...

  3. 读Zepto源码之Gesture模块

    Gesture 模块基于 IOS 上的 Gesture 事件的封装,利用 scale 属性,封装出 pinch 系列事件. 读 Zepto 源码系列文章已经放到了github上,欢迎star: rea ...

  4. 如何面试 PHP 工程师?

    1,解决问题的能力和掌握的知识,看你招聘的目的而决定其二者的平衡.了解流体力学的确会对通下水道有很大帮助,但流体力学专家未必都会疏通下水道. 2,创造力,一个没有自己作品的程序员不是好程序员.编程跟写 ...

  5. AngularJS -- 指令(创建自定义指令)

    点击查看AngularJS系列目录 转载请注明出处:http://www.cnblogs.com/leosx/   什么是指令 注:本指南是针对已经熟悉AngularJS基础知识的开发人员.如果你才刚 ...

  6. 跨平台移动端APP开发---简单高效的MUI框架

    MUI是dcloud(数字天堂)公司旗下的一款跨平台开发移动APP的框架产品,在学习MUI框架之前,最先接触了Hbuilder代码编辑器,它带给我的第一感觉是快,这是HBuilder的最大优势,通过完 ...

  7. cannot be cast to javax.servlet.Servlet

    在第一次开发Maven项目时,maven环境和仓库以及eclipse都和讲师讲解的一样,可是却遇到下面这个问题: java.lang.ClassCastException: servlet.UserS ...

  8. input 事件与汉字输入法:使用compositionend事件解决

    input 事件与汉字输入法:使用compositionend事件解决 在使用<input type="text">的input事件的时候 会遇到中文输入法的" ...

  9. 【爬虫入门01】我第一只由Reuests和BeautifulSoup4供养的Spider

    [爬虫入门01]我第一只由Reuests和BeautifulSoup4供养的Spider 广东职业技术学院  欧浩源 1.引言  网络爬虫可以完成传统搜索引擎不能做的事情,利用爬虫程序在网络上取得数据 ...

  10. 基于Redis位图实现系统用户登录统计

    项目需求,试着写了一个简单登录统计,基本功能都实现了,日志数据量小.具体性能没有进行测试~ 记录下开发过程与代码,留着以后改进! 1. 需求 1. 实现记录用户哪天进行了登录,每天只记录是否登录过,重 ...