构造方法

1、构造方法概述和格式

(1)概述:给对象的数据(属性)进行初始化

(2)格式特点

  • 方法名与类名相同(大小写也要与类名一致)
  • 没有返回值类型,连void都没有
  • 没有具体的返回值return;
public static void main(String[] args) {Phone p = new Phone();}
}class Phone{private String brand;private int price;    //构造方法public Phone(){System.out.println("啦啦啦");return;}}

2、构造方法的重载

(1)概述

方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表

(2)注意事项

  • 如果没有给出构造方法,系统将自动提供一个构造方法
  • 如果给了构造方法,系统将不再提供构造方法
  • 所以最好一直写出无参构造方法
public static void main(String[] args) {Phone p1 = new Phone();p1.show();System.out.println("----------------");Phone p2 = new Phone("vivoxplay5",2999);p2.show();}
}class Phone{private String brand;  //品牌private int price;       //价格//无参构造方法public Phone(){System.out.println("无参构造");}//有参构造器public Phone(String brand, int price) {this.brand = brand;this.price = price;System.out.println("有参构造");}public void show(){System.out.println(brand+"..."+price);}}

3、给成员变量赋值的两种方式的区别

/*** 无参构造方法:给属性进行初始化* set/get方法:修改属性值* @param args*/
public static void main(String[] args) {//无参构造创建对象Phone p1 = new Phone();    p1.setBrand("vivoxplay5");p1.setPrice(2999);p1.setBrand("vivo");p1.show();System.out.println("----------------");//有参构造创建对象Phone p2 = new Phone("vivoxplay5",2999);//这种方式并不是改名,而是将原对象变成垃圾//p2 = new Phone("vivo",2000);
        p2.show();}
}class Phone{private String brand;  //品牌private int price;       //价格public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}//无参构造方法public Phone(){System.out.println("无参构造");}//有参构造器public Phone(String brand, int price) {this.brand = brand;this.price = price;System.out.println("有参构造");}public void show(){System.out.println(brand+"..."+price);}}

4、长方形案例

public static void main(String[] args) {长方形 c = new 长方形(4,6);System.out.println(c.周长());System.out.println(c.面积());}
}
/*** 定义一个长方形类,求周长和面积的方法* 然后定义一个测试类进行测试**/class 长方形{private int a;private int b;public 长方形() {  //无参构造
        }public 长方形(int a, int b) {   //有参构造super();this.a = a;this.b = b;}public int getA() {return a;}public void setA(int a) {this.a = a;}public int getB() {return b;}public void setB(int b) {this.b = b;}public int 周长(){return (a+b)*2;}public int 面积(){return a*b;}
}

5、static关键字

特点:

(1)随着类的加载而加载

(2)优先于对象存在

(3)被类的所有对象共享

  •   举例:班上的同学应该共用同一个班级编号
  •   如果成员变量是被所有对象共享的,那么它就应该定义为静态的
  •   举例:饮水机(用静态修饰)
  •         水杯(不能用静态修饰)
  •    共性用静态,特性用非静态

(4)可以通过类名调用

  •   它本身也可以通过对象名调用
  •   推荐使用类名调用
  •   静态修饰的内容一般称为:与类相关的,类成员

注意事项:

(1)在静态方法中式没有this关键字的

  • 静态是随着类的加载而加载,this是随着对象的创建而存在的
  • 静态比对象先存在

(2)静态方法只能访问静态的成员变量和静态的成员方法

public static void main(String[] args) {c c1 = new c();c1.print();c.print1();}}    class c{int num1=10;            //非静态成员变量static int num2 = 20;   //静态成员变量public void print(){   //非静态成员方法,既可以访问静态的,也可以访问非静态的
        System.out.println(num1);System.out.println(num2);}public static void print1(){  //静态成员方法//System.out.println(num1);  //静态成员方法不能访问非静态的
        System.out.println(num2);}
}

6、静态变量和成员变量的区别

(1)所属不同

静态变量属于类,所以也称为类变量

成员变量属于对象,所以也称为实例变量(对象变量)

(2)内存中位置不同

静态变量存储与方法区的静态区

成员变量存储于堆内存

(3)内存出现时间不同

静态变量随着类的加载而加载,随着类的消失而消失

成员变量随着对象的创建而存在,随着对象的消失而消失

(4)调用不同

静态变量可以通过类名调用,也可以通过对象调用

成员变量只能通过对象名调用

7、Math类的随机数功能

public static void main(String[] args) {double d = Math.random();  //生成一个随机小数
        System.out.println(d);//生成1-100的随机数int a = (int)(Math.random()*100+1);System.out.println(a);}}    

转载于:https://www.cnblogs.com/lc1997/p/10685877.html

面向对象——构造方法(重载)相关推荐

  1. Java面向对象之构造方法、构造方法重载

    文章目录 一.构造方法 二.构造方法重载 一.构造方法 1.简单说明 在创建对象时,自动调用的方法为构造方法,它没有返回值,最大的作用就是用来存放类的属性信息(存放.转换).同时,在定义类的时候,ja ...

  2. 构造方法重载 java 1615136407

    构造方法重载 java 1615136407 默认构造方法 构造方法为属性赋值

  3. 使用构造方法 重载 Scanner键盘录入的方式,做一个两个int类型的相加 和三个double类型的计算器

    import java.util.Scanner; public class Calculator { // 使用构造方法 重载 Scanner键盘录入的方式,做一个两个int类型的相加 和三个dou ...

  4. JAVA 构造方法、无参构造方法、有参构造方法、构造方法重载

    构造方法的定义: 构造方法时专门用来创建对象的方法.new就是调用构造方法. 如何定义一个构造方法,格式: public 构造方法名(参数类型 参数名称) {方法体return;//通常最后一行ret ...

  5. 【面向对象】重载和重写

    文章目录 重载 方法重载 构造方法重载 重写 总结 重载 方法重载 Java确定一个方法需要三个要素:所有权.方法名.形参列表.Java允许同一个类里定义多个形参不同的同名方法,这被称为方法重载(Ov ...

  6. Java面向对象——构造方法和关键字(static、this、final、super)

    1 构造方法(Constructor)   1.构造方法和字段.方法一样,都是类中的成员之一:   2.构造方法的结构和普通方法类似,除了下面几点:   a.构造方法的名字和类名一致(包括大小写): ...

  7. Java构造方法与构造方法重载

    1.构造方法 构造器也叫构造方法(constructor),用于对象的初始化.Java通过new关键字来调用构造器,从而返回该类的实例. 声明格式: [修饰符]类名(形参列表){//n条语句 } 构造 ...

  8. 【C++ 语言】面向对象 ( 函数重载 | 运算符重载 | 运算符重载两种定义方式 | 拷贝构造方法 | RVO 优化 | NRVO 优化 )

    文章目录 函数重载 运算符重载 ( 类内部定义云算符重载 ) 运算符重载 ( 类外部定义运算符重载 ) 可重载的运算符 拷贝构造方法 编译器优化 ( RVO 优化 | NRVO 优化 ) 完整代码示例 ...

  9. 面向对象基础+构造方法+重载练习

    一.定义一个计算器:它的功能有加,减,乘,除,累加,阶乘,幂,平方 package com.moju;public class Computer {//定义一个计算器:它的功能有// 加,减,乘,除, ...

最新文章

  1. UC伯克利博士尤洋回国创业,曾刷新ImageNet纪录!已获超千万融资
  2. (9)C#之ADO.NET 两个ListBox联动案例
  3. count 多个字段_一句话实现字段拆分成多行
  4. JavaScript 计时器
  5. P1099 树网的核
  6. 计算机大作业visio选题,大作业一 用Visio绘网络结构图
  7. bzoj 2440: [中山市选2011]完全平方数【莫比乌斯函数+二分】
  8. HTML页面加载异常,按F12调试后居然又好了的解决办法!
  9. 解析Node.js通过axios实现网络请求
  10. 解决 Vue 重复点击相同路由,出现 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation 问题
  11. 安装双系统window +ubuntu
  12. 处理在SBS2003上安装WSUS失败的情况
  13. 编程向未来---启程
  14. 计算机没有显示插入的移动硬盘,电脑插入移动硬盘没有显示的解决办法
  15. 手动下载VMware Tolls.ISO
  16. Matlab的基本使用方法
  17. 8.0强行转换后变成了7_如何将网页转换为 PDF,保存在本地备用?
  18. 20155220 吴思其 《网络攻防》 Exp1 PC平台逆向破解(5)M
  19. 吴恩达新动向揭晓:加入精神健康领域的人工智能Woebot
  20. 使用双缓冲技术可轻松消除闪烁

热门文章

  1. AJAX ControlToolkit学习日志-ResizableControlExtender(23)
  2. 中国有超3亿人存在睡眠障碍 收入越高睡眠越少
  3. C语言程序设计之最大公约数与最小公倍数算法
  4. 谷歌正式宣称“量子霸权”:意义堪比莱特兄弟的第一次飞行
  5. json数据映射到html,在GoLang中将Json数据映射到Html模板
  6. win10计算机无限弹网页,win10系统浏览网页时频繁弹出广告怎么办 Window10阻止网页弹出广告的四种方法...
  7. 计算机游戏的英文单词,关于游戏的英语词汇
  8. ppt设置外观样式_PPT怎么做?如何做出好看的PPT?
  9. php音译汉字,PHP中的西里尔语音译
  10. cygwin编译verilator_Sublime text3 + Verilator 实现自动语法检错