zoukankan      html  css  js  c++  java
  • 疯狂java学习笔记之面向对象(一)

    Java面向对象

      1、定义类

      2、创建对象、调用方法

    类和对象:

    某一类对象的概念定义

    比如:人类 - 抽象出来的概念(不特指某个人)

    对象 - 在类的概念下产生的一个实例,它就是一个对象了.

       java程序中,类是最小的程序单位 - 所有的java程序都必须从定义类开始

    定义类的语法格式

    [修饰符]  class  类名{

             //0 ~ N 个 Field 定义

             //0 ~ N 个 方法定义

             //0 ~ N个 构造器定义

    }

    一个类中最多只能出现五种成分:Field、方法、构造器

    一个类最常见的成分为:Field、方法和构造器

    [修饰符] :可以省略,可以是public|final|abstract. 只有三个或省略

    类名      :自定义填空,从语法角度讲只要是标识符就可以

    规定约束:类名由一个或多个有意义的单词组合而成(每个单词首字母要大写),通过类名就能知道该类是做什么的  

    定义Field的语法格式

    [修饰符]  类型  Field名 [ = 默认值];

    [修饰符]      : 可以省略,还可以是public|protected|private,static,final .transient - 序列化用到

    类型           : 不能省略,可以是基本类型、数组、任意类(JDK类、自定义类、接口、枚举)

    Field名        :不能省略, 规定约束:类名由一个或多个有意义的单词组合而成(第一个单词首字母要小写,后面单词首字母大写)。

    [ = 默认值]  : 可以省略,默认值必须与它声明的类型是一致的(java是强类型语言)

    定义方法的语法格式:

    [修饰符]  返回值类型  方法名([0~N个形参声明]){

             //0 ~ N 可执行性语句

             //如果方法签名中有返回值类型声明,该方法必须包含有效的return语句

    }

    [修饰符]    : 可以省略,可以是public|protected|private,static,final,abstract(抽象),abstract和final不能同时出现

    返回值类型 : 不能省略,可以是基本类型、数组、void(声明该方法没有返回值)、任意类(JDK类、自定义类、接口、枚举)

    方法名      : 不能省略, 规定约束:类名由一个或多个有意义的单词组合而成(第一个单词首字母要小写,后面单词首字母大写),通过方法名就能知道该方法是做什么的 - 应该是动词

    形参声明   :每个形参声明都满足:"类型 变量"的格式,多个形参声明之间用","隔开

    方法体      : 方法体中的代码必须是可执行性的代码,代码的执行是从上到下的

    定义构造器的语法格式:

    [修饰符]  构造器名(0 ~ N个形参声明) {

             //0 ~ N 可执行性语句

    }

    [修饰符] : 可省略,可以是public|protected|private

    构造器名 :不能省略,必须与类名相同

    形参声明 : 每个形参声明都满足:"类型 变量"的格式,多个形参声明之间用","隔开

    构造器执行体 : 执行体必须是可执行性的代码,代码的执行是从上到下的

    构造器的作用:

    构造器可以认为是一种特殊的方法,但构造器的作用是用来产生对象的

    通俗来将:但我们定义一个类之后,就需要通过构造器来获取当前类的实例

    注意点:如果程序没有为类提供任何构造器,系统会为类提供一个无参数的构造器

       局部变量:方法里的局部变量、形参、代码块的局部变量

    局部变量前面只能有的修饰符:final

    局部变量必须由程序员来赋初始值

    实例:

    public class Apple{

    //Field定义:[修饰符] 类型 Field名 [ = 默认值];
    private int age;
    protected String name;
    protected static String[] subs;
    double weight = 23.3;
    int grade;
    //grade = 2;//类中只有五种成分,它不是Field、也不是方法、构造器,所以是错的

    /*
      [修饰符] 返回值类型 方法名([多个形参声明]){
        0 ~ N 可执行性语句
        如果方法签名中有返回值类型声明,该方法必须包含有效的return语句
      }
    */

    String sayHello(String name){

    //赋值语句属于执行性语句,可放在方法里边

    //返回值类型为String,所以必须包含有效的return语句

    grade = 2;
    return name + ",Hello";
    /*

      编译时,if里的只是一个boolean型表达式
      系统认为if里的return语句有可能不被执行,因此该return不算有效
      除非再加上else return才能算有效,
      保证在编译阶段至少要有一条语句能真正的执行才算有效的return语句
      if(true){
        return name + ",Hello";
      }
    */

    }

    }

    public class TestApple {
      public static void main(String[] args){
        //apple是定义在方法内的一个局部变量
        Apple apple;
        //使用局部变量前必须先赋初始值
        //System.out.println(apple);
        //new后面带的是一个构造器,创建一个TestApple对象
        //并让apple引用变量指向TestApple对象
        //TestApple对象存放在堆里的
        //apple是在main方法中定义的,所以apple引用变量是保存在main方法栈中
        apple = new Apple();
        //要调用方法就一定要满足对方的要求(形参)
        System.out.println(apple.sayHello("金山城"));
        //直接打印对象,输出的必然是"类名@hashcode值"
        System.out.println(apple);
      }
    }

  • 相关阅读:
    MySQL SQL语言学习
    02-MySQL执行计划详解(EXPLAIN)
    linux下删除oracle11g单实例的方法
    01. Oracle 实例恢复
    替代变量与SQL*Plus环境设置
    9. Oracle 归档日志
    8. Oracle 联机重做日志文件(ONLINE LOG FILE)
    7. Oracle 控制文件(CONTROLFILE)
    6. Oracle 回滚(ROLLBACK)和撤销(UNDO)
    5. Oracle 表空间与数据文件
  • 原文地址:https://www.cnblogs.com/dtest/p/4148928.html
Copyright © 2011-2022 走看看