A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

构造方法:

给对象的数据进行初始化.

格式的特点:

1:方法名和类名 完全一致. 包括大小写

2: 没有明确的返回值类型. 注意. 连void 都没有.

3:没有明确的返回值 (可以用return)

构造方法的重载:


   
   方法重载:同一个类中 ,方法名相同,参数列表不同的俩个或以上的方法值 称谓重载
跟返回值的数据类型无关.

注意事项:
1:如果我们没给构造方法.系统会默认给出
2:我们给了 . 系统就不给了. (不管我们给的是空残还是代餐 系统都不在给);
推荐.永远手动手动加上午餐构造.
3:构造方法不能通过对象.的调用.


给成员变量赋值的俩种方式. 有什么区别.
构造方法:主要作用是用来创建对象的 赋值只是一个捎带的动作
set方法:只能用来赋值


学生类格式正确方法:

以后写类的标准格式

:class 雷鸣
// 成员变量 全部私有
// 狗杂方法 午餐 带全餐
//get和set 方法 和属性要对应
//成员方法

class Demo4 {
        public static void main(String[] args) {
                Student s1 = new Student();
                s1.setName("潘金莲");
                s1.setAge(38);

                 System.out.println("我的姓名是:" + s1.getName() + "我的年龄是:" + s1.getAge());

                 Student s2 = new Student("武大郎",50);
                 s2.show();



        }
}

class Student {
        private String name;
        private int age;

        public Student() {}

        public Student(String name , int age) {
                this.name =  name;
            this.age = age;
        }

        public void setName (String name){
                this.name = name;
        }
        public String getName() {
           return name;
        }

        public void setAge(int age) {
                this.age = age;
        }

        public int getAge() {
                return age;
        }

        public void show() {
                System.out.println("我的姓名是:" + name + "我的年龄是:" + age);

        }
}



class Demo5 {
        public static void main(String[] args) {
                Phone p = new Phone();
                p.setBrand("胡志明");
                p.setPrice(1);
                System.out.println(p.getBrand() +"..." +p.getPrice());
               
                Phone p1 = new Phone("臭比",1);
                p1.show();
               
               
        }
}

class Phone {
        private String brand;
        private int price;

        public Phone() {}

        public Phone(String brand , int price) {
            this.brand = brand;
                this.price = price;
        }

        public void setBrand(String brand) {
            this.brand = brand;
        }

        public String getBrand() {
            return brand;
        }

        public void setPrice(int price) {
                this.price = price;
        }

        public int getPrice() {
                return price;
        }

        public void show() {
                System.out.println("姓名是:" + brand + "qian" + price);
               
        }
}


     

流程.: 1, 通过类加载器Student 类的字节码文件对象加载到内存中
       2,在栈的main函数中创建一个学生类引用s.等待接受堆中传过来的地址值
       3.看到new以后. 会去象堆内存申请开辟空间
       4.成员变量进堆.系统给出默认值 同事成员方法进方法区. 有类名做标然后和堆中的地址做关联
       5. 执行显示初始化. 对成员变量进行赋值.
       6. 够脏方法进栈.对成员变量进行初始化. 完了以后够脏方法弹栈,对象创建完毕
       7.把堆中,对象的地址值给栈中的学生类的引用s


例题.: Rectangle
长:hight  宽: width

  求周长的方法:getLength()
  求面积的方法: getArea()


class Dome7 {
        public static void main(String[] args) {
                Rectangle r = new Rectangle(10,20);
                System.out.println(r.getLenght());
                System.out.println(r.getArea());
        }
}

class Rectangle {
        private int hight;
        private int width;


        public Rectangle() {}
        public Rectangle(int hight , int width) {
                this.hight = hight;
                this.width = width;
        }
        public void setHight(int hight) {
                this.hight = hight;
        }

        public int getHight() {
                return hight;
        }

        public void setWidth(int width) {
                this.width = width;
        }

        public int getWidth() {
                return width;
        }
       
        public int getLenght() {
                return 2 * (width + hight);
        }

        public int getArea() {
                return width * hight;
        }
        }


案例掩饰:

static :关键字.   特点:
1,随着类的加载而加载
2,优先于对象存在
3,
资源共享. 解释.
   被static 修饰的内容能被该类下所有的对象锁共享.

   问: 什么时候使用静态,?

    当一个内容是被该类下所有的对象所共享的时候 就可以考虑使用静态
共性用静态 特性非静态

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


  注意事项:

     1: 静态方法中是没有 this关键字的.
     2: 静态方法值能访问静态成员变量和静态成员方法.

   总结: 静态智能直接访问静态.

   静态方法如果想使用非静态的内容. 必须先创建对象.然后才能使用.

  静态变量和成员变量有哪些区别;
1, 所属不同
静态变量:属于类. 所以称谓类便俩个
成员变量:对象 称谓对象变量
2, 在内存中的存储位置不同.
静态变量:存储方法区的静态区
成员变量:存储与堆
3,在内存中的出现时机不同:
静态变量:随着类的加载而加载
成员变量:对象的创建而存在.
4,调用方式不同.
静态变量:类名.或者 对象.
成员变量:只能通过对象名.的方式来调用


如何制作和使用api:
工具类:里边封装的是一些工具方法 方法一般都是静态的. 并且构造方法一般会加私有. 目的是不让别的类创建该类对象

    制作说明数的命令:
      javadoc -d . (当前目录) -author -version 类名.java

   记忆:

     被public修饰的类叫公共类 一个java文件中.公共类只能有一个. 并且公共类的文件名和顶级类的类名要一致

如何使用api:

1:找到要使用的类
2:看类的结构(是否需要导报)
  如果是java,lang包下的类 可以直接使用 不需要导报,
3:大概的看下类的说明. 看看这个类是做什么的.
4:看构造方法.
  有:该类的成员一般是非静态的, 需要创建对象 然后使用.
  无: 该类的成员一般都是静态的.可以通过类名.的方式调用
5: 按照正常的逻辑来调用方法即可.
左边:
static 有无static 有就通过类名.来调用. 没有就创建对象调用
看返回值类型:是什么类型.就用什么类型的变量来接受
右边:
看方法名. 不要写错了.
看参数列表. 要什么就给什么,

猜数字的小游戏
: 如果获取1-100的随机数
  math.random();
    public static double random()

包左不包右!
(int)math.random()*100)+1
思路:
1,通过随机数生成一个数字guessNumber. 让用户来猜.
2:通过键盘录入. 让用户输入猜的数字.inputNumber
3,把俩个数据进行比较:
如果大了:提示大了
如果小了:提示小了
如果相等:才对了. 请找XXX领奖品
4,因为不知道才多少次 所以while循环改进.

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马