zoukankan      html  css  js  c++  java
  • day06

    构造器:

      在创建对象时,对对象进行初始化操作,绝大多数情况是对于属性初始化赋值

    特点:

      1.方法名和类完全一致

      2.无返回值类型 连void也没有

      3.它只在创建对象的时候调用一次,不可以像普通方法随意调用

    方法的重载以及package、import的用法

     1 package com.atguigu.javase.javabean;// package 机构类型.机构名称.项目名称.模块名称;
     2 //package aaa.bbb.ccc; //告诉编译器Computer类编译成.class文件后,保存到哪个包目录下.
     3                        // 如果代码中有package语句,则必须使用选项-d(directory)进行编译
     4                        // 一旦源文件中包含package语句,这个类的类名就必须包含完整包名(类的限定名称)
     5                        // aaa.bbb.ccc.Computer
     6 // 写一个类Computer
     7 // cpu,内存,磁盘,相应的get/set方法
     8 // 提供2-3个构造器
     9 // 提供一个getDetails()方法,返回String
    10 public class Computer {
    11     
    12     private double cpu;
    13     private int memory;
    14     private int disk;
    15     
    16     public Computer() {
    17         /*
    18         cpu = 1.0;
    19         memory = 1;
    20         disk = 100;*/ 
    21         //System.out.println("Computer()..."); //这样写不可以,它必须在有效行的第一行
    22         // 可以通过一个间接的重载构造器的调用,实现三个属性的同时初始化
    23         this(1.0);
    24         System.out.println("Computer()...");
    25     }
    26     
    27     public Computer(double cpu) {
    28         /*
    29         this.cpu = cpu;
    30         memory = 1;
    31         disk = 100;*/
    32         this(cpu, 1);
    33         System.out.println("Computer(double)...");
    34     }
    35     
    36     public Computer(double cpu, int memory) {
    37         /*
    38         this.cpu = cpu;
    39         this.memory = memory;
    40         disk = 100;*/
    41         this(cpu, memory, 100); //一行的调用相当于上面的三行
    42         System.out.println("Computer(double, int)...");
    43     }
    44     
    45     public Computer(double cpu, int memory, int disk) {
    46         //this(); 这样会形成死循环,导致方法无限压栈,最终栈溢出
    47         this.cpu = cpu;
    48         this.memory = memory;
    49         this.disk = disk;
    50         System.out.println("Computer(double,int,int)...");
    51     }
    52     
    53     public void setCpu(double cpu) {
    54         this.cpu = cpu;
    55     }
    56     
    57     public double getCpu() {
    58         return cpu;
    59     }
    60     
    61     public void setMemory(int memory) {
    62         this.memory = memory;
    63     }
    64     
    65     public int getMemory() {
    66         return memory;
    67     }
    68     
    69     public void setDisk(int disk) {
    70         this.disk = disk;
    71     }
    72     
    73     public int getDisk() {
    74         return disk;
    75     }
    76     
    77     public String getDetails() {
    78         return "CPU:" + this.getCpu() + "GHz,内存:" + this.getMemory() + "G,硬盘:" + this.getDisk() + "G";
    79     }
    80     
    81 }
     1 package com.atguigu.javase.test;
     2 
     3 // 告诉编译器,当前类中要使用的其他包中的类的路径
     4 import com.atguigu.javase.javabean.Computer;
     5 
     6 // 写一个测试类,调用不同的构造器,创建多个对象并打印输出
     7 public class ComputerTest {
     8     
     9     public static void main(String[] args) {
    10         //当类中有import语句时,下面的限定名称就不必使用了
    11         //com.atguigu.javase.javabean.Computer c1 = new com.atguigu.javase.javabean.Computer(); //必须使用限定名称,因为Computer类被包管理
    12         Computer c1 = new Computer(); //不必使用限定名称,因为Computer类已经被导入了.
    13         
    14         System.out.println(c1.getDetails());
    15         /*
    16         Computer c2 = new Computer(2.0);
    17         System.out.println(c2.getDetails());
    18         Computer c3 = new Computer(3.0, 2);
    19         System.out.println(c3.getDetails());
    20         Computer c4 = new Computer(4.0, 4, 400);
    21         System.out.println(c4.getDetails());
    22         */
    23     }
    24     
    25 }

    数组以及for循环的搭配使用

     1 package com.atguigu.test;
     2 
     3 public class CharTest {
     4 /*
     5 创建一个char型数组36个元素,
     6 前26个保存大写字母,后10个保存0-9数字字符
     7 打印输出 
     8 */    
     9     public static void main(String[] args) {
    10         char[] c = new char[36];
    11         for(int i = 0; i < 26; i++) {
    12             c[i] = (char)('a' + i);
    13         }
    14         for(int i = 0; i < 10; i++) {
    15             c[i + 26] = (char)('0' + i);
    16         }
    17         for(int i = 0; i < c.length; i++) {
    18             System.out.print(c[i] + " ");
    19         }
    20     }
    21     
    22 }
  • 相关阅读:
    MYSQL判断某个表是否已经存在
    百度、雅虎、谷歌搜索引擎接口调用注意事项
    Codeigniter整合Tank Auth权限类库的教程
    短链接的生成算法
    自定义String
    运算符和结合性
    字符串类封装
    运算符重载
    数组类封装
    友元
  • 原文地址:https://www.cnblogs.com/alwaysInMe/p/6383634.html
Copyright © 2011-2022 走看看