构造方法, static关键字

1.1构造方法概述和格式

构造方法就是专门用来创建对象的方法,当通过关键 new的时候其实就是在调用构造方法。
如何定义一个构造方法

public 构造方法名(参数类型 参数名称){

     方法体;
  return//一般省略不写
1
 2
 }

构造方法的时候需要在注意的事项:

不能写返回值类型,连void的都不能写,如果写的话就不叫构造方法了,是成员方法或者一般方法。
构造方法名必须和本类的名字一模一样,就连大小写也要一样,例如:

    public class Person{
      public Person(){  //创建了一个构造方法 
   1
   System.out.println("调用构造方法”);
  2
}

1.2 创建一个对象的步骤

步骤:
(1):加载Student.class文件进内存
(2):在栈内存为s开辟空间
(3):在堆内存为学生对象开辟空间
(4):对学生对象的成员变量进行默认初始化
(5):对学生对象的成员变量进行显示初始化
(6):通过构造方法对学生对象的成员变量赋值
(7):学生对象初始化完毕,把对象地址赋值给s变量

需求:
定义一个长方形(RectangleDemo)类,定义求周长(length)和面积(area)的方法,
然后定义一个测试类Test,进行测试.

/**
定义一个长方形类rectangle,定义求周长girth和面积area的方法,然后定义一个测试类Test2,进行测试
从键盘接收长和宽
*/
import java.util.Scanner;
class Rectangle{
    private int length;
    private int width;
    //set长
    public void setLength(int len){
        length=len;
    }
    public void setWidth(int wid){
        width=wid;
    }
    //求长方形周长
    public int getGirth(){
        return 2*(length+width);
    }
    //求长方形面积
    public int getArea(){
        return length*width;
    }
    
}
class GetRectangleDemo{
    public static void main(String[] args){
        
    //创建扫描对象
    Scanner s=new Scanner(System.in);
    //提示用户输入长度
    System.out.println("请输入长方形的长:");
    int length=s.nextInt();
    //提示用户输入宽?
    System.out.println("请输入长方形的宽:");
    int width=s.nextInt();
    Rectangle rec=new Rectangle();
    rec.setLength(20);
    rec.setWidth(10);
    System.out.println("长方形的周长是:"+rec.getGirth()+"\t"+"长方形的面积是:"+rec.getArea());
    }
    
}

2.1 static关键字的特点和注意事项

static关键字的特点
1.随着类的加载而加载
2.优先于对象存在
3.被类的所有对象共享
4.可以通过类名调用
static的注意事项
1:在静态方法中是没有this关键字的 :静态是随着类的加载而加载,this是随着对象的创建而存在。静态比对象先存在。
2:静态方法只能访问静态的成员变量和静态的成员方法 :简单记:静态只能访问静态,非静态可以访问静态的也可以访问非静态的

2.2 静态变量和成员变量的区别

静态变量成员变量
静态变量属于类,所以也称为类变量成员变量属于对象,所以也称为实例变量(对象变量
静态变量存储于方法区的静态区成员变量存储于堆内存
静态变量随着类的加载而加载,随着类的消失而消失成员变量随着对象的创建而存在,随着对象的消失而消失
静态变量可以通过类名调用,也可以通过对象调用成员变量只能通过对象名调用

3.1 如何使用JDK提供的帮助文档)

A:找到文档,打开文档
B:点击显示,找到索引,出现输入框
C:你应该知道你找谁?举例:Scanner
D:看这个类的结构(需不需要导包)
	java.lang包下的内容不需要我们手动导入
	其它包下的内容需要我们手动导入
	类		    			API文档
		成员变量				字段摘要
		构造方法				构造方法摘要
		成员方法				方法摘要
E:看这个类的说明(简单的了解一下)
F:看开始版本
G:看构造方法
H:看成员方法
	看左边:
		是否是static,如果是我们就不需要创建对象,直接可以使用类名调用该方法;看返回值,返回值是什么我就使用什么接收
	看右边:
		看参数列表: 参数的个数 , 参数的类型 ; 要什么参数我是用的时候,就传递什么参数					
I:然后使用

需求:猜数字小游戏(数据在1-100之间)

/*
 * 
 * 需求:猜数字小游戏(数据在1-100之间)
 */
 
import java.util.Scanner;
 
public class Test3_GuessNum {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);            //  创建键盘录入对象
        System.out.println("请输入一个整数,范围在1-100之间:");
        int guessNum = (int) (Math.random() * 100 + 1); // 心里想的随机数
        while (true) {                                  // 因为需要猜很多次,所以用无限循环
            int result = sc.nextInt();                  // 大家猜的数
            if (result < guessNum) {                    // 猜的数大于心里想的随机数
                System.out.println("小了");
            } else if (result > guessNum) {             // 猜的数大于心里想的随机数
                System.out.println("大了");
            } else {                                    // 猜的数不大也不小,那便是相等了
                System.out.println("bingo");
                break;                                  // 相等便退出循环
            }
        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值