------Java培训、Android培训、iOS培训、.Net培训、期待与您交流------
构造方法:
特点:
a: 方法名和类名相同
b: 没有返回值类型,连void也没有
c: 没有返回值
构造方法的作用:
给成员变量赋值
构造方法的注意事项:
a: 如果我们没有提供构造方法,系统会默认提供一个无参的构造方法
b: 如果我们提供了构造方法,系统不会在提供默认的无参的构造方法
描述一个类的组成:
a: 成员变量
b: 构造方法
c: 成员方法
给类的成员变量赋值:
a: 通过set方法
b: 通过构造方法
特点:
a: 方法名和类名相同
b: 没有返回值类型,连void也没有
c: 没有返回值
构造方法的作用:
给成员变量赋值
构造方法的注意事项:
a: 如果我们没有提供构造方法,系统会默认提供一个无参的构造方法
b: 如果我们提供了构造方法,系统不会在提供默认的无参的构造方法
描述一个类的组成:
a: 成员变量
b: 构造方法
c: 成员方法
给类的成员变量赋值:
a: 通过set方法
b: 通过构造方法
// 学生类
class Student {
// 成员变量
String name ;
int age ;
// 构造方法
public Student(){
name = "小强";
age = 24 ;
}
public Student(String name ){
this.name = name ;
}
public Student(int age){
this.age = age ;
}
public Student(String name , int age){
this.name = name ;
this.age = age ;
}
// 成员方法
public void show(){
System.out.println(name + "----" + age);
}
}
// 测试类
class StudentTest {
public static void main(String[] args) {
// 创建对象
Student s1 = new Student();
// 调用show方法
s1.show();
System.out.println("--------------------");
// 创建对象2
Student s2 = new Student("小迪");
// 调用show方法
s2.show();
System.out.println("--------------------");
// 创建对象3
Student s3 = new Student(24);
// 调用show方法
s3.show();
System.out.println("--------------------");
// 创建对象3
Student s4 = new Student("小迪" , 21);
// 调用show方法
s4.show();
// 创建对象
Student s = new Student();
// 调用show方法
s.show();
}
}
给成员变量赋值:
a: 构造方法
b: 通过set方法
set方法更加灵活(开发中常用)
获取成员变量的值:
a: 通过show方法
b: 通过get方法
get方法常用(开发中常用)
a: 构造方法
b: 通过set方法
set方法更加灵活(开发中常用)
获取成员变量的值:
a: 通过show方法
b: 通过get方法
get方法常用(开发中常用)
// 完善的学生类
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 ;
}
// 提供一个show方法
public void show(){
System.out.println(name + "---" + age);
}
}
// 测试类
class StudentTest2 {
public static void main(String[] args) {
// 调用无参的构造方法创建对象
Student s1 = new Student();
// 给成员变量赋值
s1.setName("小强");
s1.setAge(24);
// 改名
s1.setName("小迪");
// 输出成员变量
// 调用show方法
s1.show();
// 通过get方法
System.out.println(s1.getName() + "---" + s1.getAge());
System.out.println("-------------------");
// 调用有参的构造方法创建对象
Student s2 = new Student("小强" , 24);
s2.setName("小迪");
// 输出成员变量
s2.show();
}
}
创建对象的步骤:
Student s = new Student();
步骤:
(1): 加载Student的字节码文件到方法区
(2): 在栈内存中为s开辟空间
(3): 在堆内存中为new Student()开辟空间
(4): 给成员变量进行默认初始化
(5): 给成员变量进行显式初始化
(6): 通过构造方法对成员变量赋值
(7): 将堆内存中的地址值赋值给栈内存中的引用变量s
static 关键字的注意事项:
a: 在静态方法中是没有this关键字的
如何理解呢?
静态是随着类的加载而加载,this是随着对象的创建而存在。
静态比对象先存在。
b: 静态方法只能访问静态的成员变量和静态的成员方法
静态方法:
成员变量: 只能是静态的
成员方法: 只能是静态的
非静态方法:
成员变量: 可以是静态的也可以是非静态的
成员方法: 可以是静态的也可以是非静态的
简单记: 静态只能访问静态
static关键字的特点:
a: 随着类的加载而加载
b: 优先于对象存在
c: 被类的所有对象所共享
d: 可以通过类名调用,也可以通过对象名调用
建议使用类名调用
main方法的格式详细解释:
public static void main(String[] args){}
public: 因为该方法被JVM调用,所有要求权限最大
static: 因为该方法被JVM调用,所以不用创建该类的对应,可以直接使用类名调用
void: 因为该方法被JVM调用,所以不需要明确的返回值
main: 是一个特殊的单词,可以被JVM识别
String[] args: 可以用来接收键盘录入数据
Student s = new Student();
步骤:
(1): 加载Student的字节码文件到方法区
(2): 在栈内存中为s开辟空间
(3): 在堆内存中为new Student()开辟空间
(4): 给成员变量进行默认初始化
(5): 给成员变量进行显式初始化
(6): 通过构造方法对成员变量赋值
(7): 将堆内存中的地址值赋值给栈内存中的引用变量s
static 关键字的注意事项:
a: 在静态方法中是没有this关键字的
如何理解呢?
静态是随着类的加载而加载,this是随着对象的创建而存在。
静态比对象先存在。
b: 静态方法只能访问静态的成员变量和静态的成员方法
静态方法:
成员变量: 只能是静态的
成员方法: 只能是静态的
非静态方法:
成员变量: 可以是静态的也可以是非静态的
成员方法: 可以是静态的也可以是非静态的
简单记: 静态只能访问静态
static关键字的特点:
a: 随着类的加载而加载
b: 优先于对象存在
c: 被类的所有对象所共享
d: 可以通过类名调用,也可以通过对象名调用
建议使用类名调用
main方法的格式详细解释:
public static void main(String[] args){}
public: 因为该方法被JVM调用,所有要求权限最大
static: 因为该方法被JVM调用,所以不用创建该类的对应,可以直接使用类名调用
void: 因为该方法被JVM调用,所以不需要明确的返回值
main: 是一个特殊的单词,可以被JVM识别
String[] args: 可以用来接收键盘录入数据
最后为了更好的理解方法:我们设计了一个小游戏:猜数字小游戏!
分析:
a: 使用Math类生产一个1-100之间的随机数
b: 通过键盘录入进行猜测.
猜中了
猜大了
猜小了
需要使用循环
a: 使用Math类生产一个1-100之间的随机数
b: 通过键盘录入进行猜测.
猜中了
猜大了
猜小了
需要使用循环
import java.util.Scanner ;
class GuessNumGame {
public static void main(String[] args){
// 使用Math类的随机数功能
// public static double random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。 [0.0 , 1.0)
// 使用Math类生产一个1-100之间的随机数
int num = (int)(Math.random() * 100) + 1 ;
// System.out.println(num);
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
while(true){
// 友情提示
System.out.println("请您猜测一个数: ");
// 获取键盘录入数据
int guessNum = sc.nextInt();
// 进行比较
if(guessNum == num){
System.out.println("恭喜您,猜中了!!!");
break ;
}else if(guessNum > num){
System.out.println("对不起,大了!");
}else {
System.out.println("对不起,小了!");
}
}
}
}