面向对象——构造方法(重载)
构造方法
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
面向对象——构造方法(重载)相关推荐
- Java面向对象之构造方法、构造方法重载
文章目录 一.构造方法 二.构造方法重载 一.构造方法 1.简单说明 在创建对象时,自动调用的方法为构造方法,它没有返回值,最大的作用就是用来存放类的属性信息(存放.转换).同时,在定义类的时候,ja ...
- 构造方法重载 java 1615136407
构造方法重载 java 1615136407 默认构造方法 构造方法为属性赋值
- 使用构造方法 重载 Scanner键盘录入的方式,做一个两个int类型的相加 和三个double类型的计算器
import java.util.Scanner; public class Calculator { // 使用构造方法 重载 Scanner键盘录入的方式,做一个两个int类型的相加 和三个dou ...
- JAVA 构造方法、无参构造方法、有参构造方法、构造方法重载
构造方法的定义: 构造方法时专门用来创建对象的方法.new就是调用构造方法. 如何定义一个构造方法,格式: public 构造方法名(参数类型 参数名称) {方法体return;//通常最后一行ret ...
- 【面向对象】重载和重写
文章目录 重载 方法重载 构造方法重载 重写 总结 重载 方法重载 Java确定一个方法需要三个要素:所有权.方法名.形参列表.Java允许同一个类里定义多个形参不同的同名方法,这被称为方法重载(Ov ...
- Java面向对象——构造方法和关键字(static、this、final、super)
1 构造方法(Constructor) 1.构造方法和字段.方法一样,都是类中的成员之一: 2.构造方法的结构和普通方法类似,除了下面几点: a.构造方法的名字和类名一致(包括大小写): ...
- Java构造方法与构造方法重载
1.构造方法 构造器也叫构造方法(constructor),用于对象的初始化.Java通过new关键字来调用构造器,从而返回该类的实例. 声明格式: [修饰符]类名(形参列表){//n条语句 } 构造 ...
- 【C++ 语言】面向对象 ( 函数重载 | 运算符重载 | 运算符重载两种定义方式 | 拷贝构造方法 | RVO 优化 | NRVO 优化 )
文章目录 函数重载 运算符重载 ( 类内部定义云算符重载 ) 运算符重载 ( 类外部定义运算符重载 ) 可重载的运算符 拷贝构造方法 编译器优化 ( RVO 优化 | NRVO 优化 ) 完整代码示例 ...
- 面向对象基础+构造方法+重载练习
一.定义一个计算器:它的功能有加,减,乘,除,累加,阶乘,幂,平方 package com.moju;public class Computer {//定义一个计算器:它的功能有// 加,减,乘,除, ...
最新文章
- UC伯克利博士尤洋回国创业,曾刷新ImageNet纪录!已获超千万融资
- (9)C#之ADO.NET 两个ListBox联动案例
- count 多个字段_一句话实现字段拆分成多行
- JavaScript 计时器
- P1099 树网的核
- 计算机大作业visio选题,大作业一 用Visio绘网络结构图
- bzoj 2440: [中山市选2011]完全平方数【莫比乌斯函数+二分】
- HTML页面加载异常,按F12调试后居然又好了的解决办法!
- 解析Node.js通过axios实现网络请求
- 解决 Vue 重复点击相同路由,出现 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation 问题
- 安装双系统window +ubuntu
- 处理在SBS2003上安装WSUS失败的情况
- 编程向未来---启程
- 计算机没有显示插入的移动硬盘,电脑插入移动硬盘没有显示的解决办法
- 手动下载VMware Tolls.ISO
- Matlab的基本使用方法
- 8.0强行转换后变成了7_如何将网页转换为 PDF,保存在本地备用?
- 20155220 吴思其 《网络攻防》 Exp1 PC平台逆向破解(5)M
- 吴恩达新动向揭晓:加入精神健康领域的人工智能Woebot
- 使用双缓冲技术可轻松消除闪烁
热门文章
- AJAX ControlToolkit学习日志-ResizableControlExtender(23)
- 中国有超3亿人存在睡眠障碍 收入越高睡眠越少
- C语言程序设计之最大公约数与最小公倍数算法
- 谷歌正式宣称“量子霸权”:意义堪比莱特兄弟的第一次飞行
- json数据映射到html,在GoLang中将Json数据映射到Html模板
- win10计算机无限弹网页,win10系统浏览网页时频繁弹出广告怎么办 Window10阻止网页弹出广告的四种方法...
- 计算机游戏的英文单词,关于游戏的英语词汇
- ppt设置外观样式_PPT怎么做?如何做出好看的PPT?
- php音译汉字,PHP中的西里尔语音译
- cygwin编译verilator_Sublime text3 + Verilator 实现自动语法检错