黑马程序员技术交流社区
标题:
方法的基本步骤Static关键字
[打印本页]
作者:
马赛
时间:
2015-12-15 23:27
标题:
方法的基本步骤Static关键字
一、构造方法(重点、掌握)
构造方法是用来创建对象的,写法和前边学到的public static void xxx 和 public void xxx 类似
只不过构造方法没有返回值,也没有void,方法名要和类名一模一样
构造方法分为无参构造方法和有参构造方法,自己如果没有写构造方法,系统会有一个默认的无参构造方法
Student类的构造方法
class Student{
String name;
int age;
//无参构造方法
public Student(){
}
//有参构造方法
public Student(String name, int age){
this.name = name;
this.age = age;
}
}
成员变量的赋值方法
1,set和get方法
2,构造方法传递参数
二、成员方法的分类和使用
1、无返回值
public void noValue(){
System.out.println(100);
}
2、有返回值
public int hasValue(){
return 100+200;
}
3、有参
public void hasParam(int num){
System.out.println(num);
}
4、无参
public void noParam(){
System.out.print("100+200");
}
三、基本类的标准写法
这个是老师的经验分享,写类的一般步骤
1,private属性
2,构造方法,先写无参再写有参的
3,成员方法
4,set和get方法
5,用不到的可以不写,代码依附于需求
拿Student当例子
class Student{
private String name;
private int age;
public Student(){
}
public Student(String name, int age){
this.name = name;
this.age = age;
}
public void study(){
System.out.println(name + "今年" + 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;
}
}
class StudentDemo{
public static void main(String[] args){
//使用set方法赋值
Student s1 = new Student();
s1.setName("张三");
s1.setAge(18);
s1.study();
System.out.println("-----");
//使用构造方法赋值
Student s2 = new Student("李四", 20);
s2.study();
}
}
四、创建一个对象的步骤
同第六天
五、static关键字
方法区里边有一个静态区,可以放静态变量和静态方法,static数据就放在方法区
静态的东西随着类的加载而加载
优先于对象存在
静态变量可以被公用
如果一个变量需要被对象共享,就应该使用static关键字
直接通过类名调用,最开始学习方法的时候都是用的static修饰
静态只能调用静态
静态变量和成员变量的区别
静态变量属于类,随着类的加载而加载
成员变量属于对象,随着对象的创建而加载
静态变量存储在方法区中的静态区
成员变量存储在堆内存
静态变量优先于成员变量,所以不能用对象.来调用静态变量
六、main方法
public static void main(String []){}
public : 公共的,权限最大的
static : 静态的,通过类名.直接调用
void :没有返回值的
main :一个被特殊化的方法名,如果写错,java虚拟机不会启动
String[] args :字符串数组类型的参数,以前用于接收键盘录入
在控制台输入 java 类名.java 数据1 数据2 数据3 ...
会传入字符串类型的参数
可以通过以下代码获得args的内存地址
class Demo{
public static void main(String[] args){
System.out.println(args);
}
}
七、Api文档
/**
* 当前类是可以对数组做常见操作的类
*
* @author 王鹏 18888888888
* @version 1.0 2015-11-29 17:27:00
*/
public class ArrayTool {
private ArrayTool() {}
/**
* 遍历数组中的每个元素,显示出来
* @param arr 请传入一个数组
*/
public static void print(int[] arr) {
...
}
/**
* 判断num数字是否存在数组arr中,返回它的下标位置
* @param arr 请传递一个数组
* @param num 请传入一个数字
* @return -1、没有找到,否则返回下标值
*/
public static int getIndex(int[] arr, int num) {
...
}
}
通过Api查看Math方法,Math方法的父类是java.lang,所以不用导包,因为lang包里的方法会
经常被用到
基本的数学方法都可以在Math类中找到
Math没有构造,都是静态成员和方法,直接用Math.调用
学习Math类中的random随机数方法(大于0小于1)
获得1-100之间的随机数的代码
//定义一个猜数字游戏
import java.util.Scanner;
class GuessGame{
public static void main(String[] args){
//使用Math类中的random方法
//random方法返回的是double类型,需要强制转换
int randomNum = (int)(Math.random()*100)+1;
Scanner sc = new Scanner(System.in);
//人机交互
System.out.println("请输入你猜的数字(1-100)");
//因为不知道循环次数,所以使用while循环
while(true){
int guessNum = sc.nextInt();
if(guessNum > randomNum){
System.out.println("大了,请重猜");
}else if(guessNum < randomNum){
System.out.println("小了,请重猜");
}else{
System.out.println("恭喜,猜对了");
break;
}
}
System.out.println("游戏结束!");
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2