构造方法:
给对象的数据进行初始化.
格式的特点:
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循环改进.
|
|