1、属性
1.1、属性,即对象的数据,又称为成员变量,是声明在类中的变量,在方法体中声明的变量成为局部变量或临时变量
1.2、声明方式【访问权限修饰符】【修饰符】数据类型 属性名【=初值】
例private static int count = 0
1.3、属性名命名规则,单个单词使用小写,多个单词从第二个单词开始,每个单词首字母大写
2、方法
2.1、方法即对象的行为,是定义在类中具有特定功能的一小段独立小程序,也称为函数,对于面向对象的发开来讲,相当于对象的行为
2.2、声明方式【访问权限】【修饰符】返回值数据类型 方法名(形式参数列表){执行语句;【return返回值】}
访问权限控制属性和方法的被调用的范围常见的有public、default等
修饰符包括static、final、abstract、synchronized等
2.3、方法内不能再定义方法
2.4、方法可以同名,但是不同参数,成为方法的重载(overlord)例如int add (int x,int y)和float add (float x,int y),有可能是数量不用、类型不同、顺序不同,不包括返回值类型不同,仅限于一个类中,将功能相近的方法用一个方法名表示,有利于减少重复,增强可读性
返回值类型,数据类型,没有的话,返回值为void
3、类
3.1、声明方式【访问权限修饰符】 类名 (形式参数列表){方法体}
方法体中主要负责对属性进行初始化
3.2、关键字this的作用,用来区分类中属性【+this】,和方法的参数
3.3、具有一个默认的构造方法,但如果创建了一个构造方法,默认构造方法就会取消,除非显示声明
3.4、类中的方法不能直接使用,必须现将其转化为对象才能调用方法
3.5、构造方法重载的主要目的是为类赋初值,是不同class进行值传递的一种方法,
构造方法与方法的区别
构造方法:
每一个类中都有一个默认的构造方法
是用在实例化对象的时候调用的
没有返回值,连void也没有
方法名必须与类名相同
不能使用修饰符
方法:
分为静态方法和非静态方法
可以使用修饰符,
静态方法的类名可以直接调用,非静态方法要用对象调用
返回值没有时,必须加void
方法命最好和类名不一样
静态块
类加载一次被调用一次,仅调用一次 声明方法static{//任何符合语法的java代码}
实例块
每次调用构造方法前自动调用 { //任何符合语法的java代码}
内部类不再解释
附加代码
Login.java
package shuxing;
public class Login {
<span style="white-space:pre"> </span>public static void main(String[] args) {//main方法
<span style="white-space:pre"> </span>// TODO Auto-generated method stub
Accound account = new Accound();
//Accound account = new Accound("20093891","admin");//构造方法方法的重构overlord,调用构造方法是可以根据情况确定是调用默认的构造方法,还是具有两个同样参数的构造方法
//Accound声明创建的对象的类型,与相应的类名相同
//account对象名称,不一定与类名相同,实际上也不应该相同
//构造方法默认认为一个无参的构造方法,其作用是实例化对象
//Accound()类的构造方法无参的构造方法,如有多个构造方法,可以根据参数情况进行重载
System.out.println("账户的ID"+account.getId());
account.setCrasj(10000);
System.out.println("账户的余额"+account.getCrash());
Accound account2 = new Accound("20093891","admin");//赋初值,通过构造方法,
System.out.println("账户的ID"+account2.getId());
account.setCrasj(10000);
System.out.println("账户的余额"+account2.getCrash());
Accound account3 = new Accound("20092891","admin");//赋初值,通过构造方法,
System.out.println("账户的ID"+account2.getId());
account.setCrasj(-2000);
System.out.println("账户的余额"+account2.getCrash());
<span style="white-space:pre"> </span>}
}
accound.java
package shuxing;
public class Accound {
<span style="white-space:pre"> </span>String id = "20093889";
<span style="white-space:pre"> </span>String password = "admin";
int crash = 18000;
<span style="white-space:pre"> </span>//构造方法
<span style="white-space:pre"> </span>Accound(){
<span style="white-space:pre"> </span>//默认无参的构造方法<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>//构造方法重载
<span style="white-space:pre"> </span>Accound(String id,String password){//通过构造方法赋初值
<span style="white-space:pre"> </span>this.id = id;
<span style="white-space:pre"> </span>this.password = password;
<span style="white-space:pre"> </span>}//构造方法方法的重构overlord,调用构造方法是可以根据情况确定是调用默认的构造方法,还是具有两个同样参数的构造方法
<span style="white-space:pre"> </span>//声明属性
//静态块
<span style="white-space:pre"> </span>static{
<span style="white-space:pre"> </span>//只调用一次,往往是加载资源
<span style="white-space:pre"> </span>System.out.println("静态块,只调用一次");
<span style="white-space:pre"> </span>}
//实例块
<span style="white-space:pre"> </span>{
<span style="white-space:pre"> </span>System.out.println("实例块,多次调用");
<span style="white-space:pre"> </span>}
//声明方法
String getId(){
<span style="white-space:pre"> </span>return id;
}
String getPassword(){
return password;<span style="white-space:pre"> </span>
}
void setPassword(String newpwd){
<span style="white-space:pre"> </span>password = newpwd;
}
<span style="white-space:pre"> </span>int getCrash(){
<span style="white-space:pre"> </span> return crash;<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span> }
<span style="white-space:pre"> </span>void setCrasj(int crash){
<span style="white-space:pre"> </span>this.crash = this.crash+crash;//this用来区分类中的属性crash和方法setCrash中形参carsh
}
}
结果
静态块
实例块
账户的ID20093889
账户的余额28000
实例块
账户的ID20093891
账户的余额18000
实例块
账户的ID20093891
账户的余额18000