zoukankan      html  css  js  c++  java
  • [Java 05 OO] (基础篇) 《Java开发实战经典》

    p5OO 第五章 面向对象 (基础篇) Notes
     (1), Constructor / this / String
       String str1 = "hello"; 解释 : 是把一个在堆内存空间的使用权给了 str1 对象。
       String str2 = "hello"; str1 == str2 是 true
       String 字符串的内容不可改变
     (2), Java 常用的内存区域
        1), 栈内存空间    2), 堆内存空间
        3), 全局数据区    4), 全局代码区
     (3), static 类属性, 类方法
        非 static 声明的方法可以去调用 static 声明的属性或方法。
        static 声明的方法不能调用 非 static 声明的属性或方法。
     (4), 理解 main 方法   public static void main(String[] args)
       1), public:表示此方法可以被外部调用
       2), static : 表示此方法可以由类名称直接调用
       3), void : 主方法是程序的起点,所有不需要任何的返回值
       4), main : 系统规定好默认调用的方法名称,执行时默认找到 main 方法名称
       5), String args[] 运行时参数,参数传递的形式是 : “java类名称”, 参数1, 参数2, ...
     (5), 代码块
       1), 普通代码块  :  直接在方法或者语句中定义的代码块  
       2), 构造块     :  直接写在类中的代码块
       3), 静态代码块  :  使用 static 关键字声明的代码块
       4), 同步代码块 
       总结 : 静态代码块优先于主方法执行,而在类中定义的静态代码块会优先于构造块执行,而且不管有多少个对象产生,静态代码块只执行一次。
     (6), 私有构造方法 - 单例
         private static Singleton instance = new Singleton();
         private Singleton() {}
         public static Singleton getInstance() {
             return instance;
         }
     (7), 内部类  http://blog.csdn.net/robbyo/article/details/26233993

     1 package com.qunar.basicJava.javase.p5OO;
     2 
     3 /**
     4  * Author: libin.chen@qunar.com  Date: 14-5-18 21:35
     5  * Knowledg : Constructor / this
     6  */
     7 public class Person {
     8     private String name;
     9     private int age; // default 0
    10 
    11     public Person() {
    12         System.out.println("一个新的 Person 对象被实例化");
    13     }
    14 
    15     public Person(String name) {
    16         this.name = name; // this 表示当前对象
    17     }
    18 
    19     public Person(String name, int age) {
    20         this(); // this 调用构造函数
    21         this.setName(name);
    22         this.setAge(age);
    23     }
    24 
    25     public String getName() {
    26         return name;
    27     }
    28 
    29     public void setName(String name) {
    30         this.name = name;
    31     }
    32 
    33     public int getAge() {
    34         return age;
    35     }
    36 
    37     public void setAge(int age) {
    38         if (age >= 0 && age < 150) {
    39             this.age = age;
    40         }
    41     }
    42 
    43     public void tell() {
    44         System.out.println("姓名 : " + this.getName());
    45         System.out.println("年龄 : " + this.getAge());
    46     }
    47 
    48     public static void main(String[] args) {
    49         Person person = new Person("RoBY", -20);  // 如果没写构造函数,则默认有一个无参构造函数,写了则不会存在默认的Constructor。
    50         person.tell();
    51     }
    52 }
    53   
  • 相关阅读:
    opencv实现连通域
    C Tips:显示点阵汉字的小样例
    协方差的意义
    HashTable类模板_C++
    Java实现 蓝桥杯VIP 算法提高 选择排序
    Java实现 蓝桥杯VIP 算法提高 笨小猴
    Java实现 蓝桥杯VIP 算法提高 笨小猴
    Java实现 蓝桥杯VIP 算法提高 笨小猴
    Java实现 蓝桥杯VIP 算法提高 笨小猴
    Java实现 蓝桥杯VIP 算法提高 笨小猴
  • 原文地址:https://www.cnblogs.com/robbychan/p/3782767.html
Copyright © 2011-2022 走看看