void getName(){
System.out.println("name");
}
class : 类关键字
-
类的声明格式:[访问权限修饰符] [修饰符] class Car{ }
-
访问修饰符有两种public、无(默认)
-
修饰符:final,abstract
-
关键字class用来定义一个类
-
int a=1;
int b=6;
int max=a;
if(b>a){//if后()中的条件若成立,则执行后面大括号中的语句,这里显然成立
max=b;//max等于6;
}
else:用在条件语句中,表明当条件不成立时的分支
int a=9;
int b=6;
int max=a;
if(b>a){//这里if后()中的条件不成立成立
max=b;
}
else{
max=a;//执行else后大括号里的语句
}
for:一种循环结构的引导词
//for循环的一般格式:for(表达式一;表达式二;表达式三)
//表达式一:循环结构的初始部分,为循环变量赋初值。
//表达式二:循环结构的循环条件。
//表达式三:一般是循环变量的自增或自减
for(int i=1;i<10;i++){
//循环体
}
for(;;)//死循环
//增强for循环,一般用于遍历,局限性较大
int [] arr = {1,2,3,4,5,6,7,8,9};
for(int i:arr){//从0开始每循环一次把数组arr中的值赋给i
//循环体
}
while:一种循环结构的引导词
while(){//循环条件为真则执行大括号里的代码
//循环体
}
while(true){//死循环
}
do:用在do-while循环结构中
do{
//循环体,先执行一次循环体,再判断小括号里的循环条件
}while(循环条件);
break:跳出循环,一般用在循环结构中,还可用到switch语句中
outer:while(true)
while(true){
a=10;
a--;
if(a<5)
break;//只能跳出它所在的循环,这里只能跳出while内循环
else
break outer;//break后可以放label标签,就可以直接结束标记的循环
}
}
continue:跳过continue之后的语句,回到一个循环的开始处
while(true){
a=10;
a--;
if(a<5){
a=10;
continue;//从这里直接回到循环开始处,不执行后面的语句
}
System.out.println("adfsd");
}
switch:分支语句结构的引导词
case:用在switch语句之中,表示其中的一个分支
default:默认,例如,用在switch语句中,表明一个默认的分支
int i=scanner.nextInt();
switch(i){//阔括号里的内容为变量表达式,此处是i
case 1:.... break;
case 2:.... break;
default:
}
return:从成员方法中返回数据
public class student{
String name="zs";
public String getName(){
return name;//返回String类型的数据
}
}
new:用来创建新实例对象
public class student{
String name="zs";
int age=23;
char sex='男';
public static void main(String[] args) {
student st = new student();//实例化一个student类型的对象
//是以student类为模板,调用student类的构造函数,在堆空间里创建一个student类对象。
}
}
static:static被称为静态,可以用来修饰类的属性,方法,代码块,内部类。
-
随着类的加载而加载
-
优先于对象存在
-
修饰的成员,被所有对象所共享
-
可不创建对象,直接被类调用
-
静态方法不能用非static的成员变量,静态资源随着类加载而加载,非静态的资源随着对象创建而加载
-
非静态方法可以使用静态变量,非静态方法必须使用对象来调用,对象创建前先加载类
-
使用this关键字引用成员变量
-
使用this关键字引用成员方法
public class Person {
static String country = "中国";//静态变量(类变量,和类一样,只有一份)
public String name;//name不建议使用static修饰,用它修饰在内存中只有一份,而每个对象的name不同,所以一般常量用static修饰,比如国籍
private int age;
public Person(int age,char sex,String name){//有参构造方法
this.sex=sex;
this.age=age;
this.name=name;
}
public static void showCountry(){//static修饰的方法或者变量或代码块属于类,随类加载而加载,可以用类名直接访问
System.out.println("国籍:"+country);
}
public void showSex(){
System.out.println("性别:"+sex);
}
public void showName(){
System.out.println(name);
}
}
extends:表明一个类型是另一个类型的子类型
super:表明当前对象的父类型的引用或者父类型的构造方法
-
用super.成员变量名来引用父类成员变量
-
用super.方法名(参数列表)访问父类的方法
-
用super.(参数列表)访问父类构造方法
-
方法重写时用于与this区分
-
误区:
-
不要把super误认为是父类对象.在创建子类对象时,
不会创建父类对象
-
只会将父类中的信息加载到子类对象中存储.
-
public class Animal{
private String name;
private int age;
public Animal(){
//super();使用super()在子类构造方法的第一行默认执行,调用父类无参构造方法,本类的父类是Object类
System.out.println("动物类无参构造方法");
}
public Animal(String name){
super();//默认的
System.out.println("动物类有参构造方法");
}
}
class Dog extends Animal{
public Dog(){
//super();本类父类是Animal类
System.out.println("狗类无参构造方法");
}
public void play(){
System.out.println("dog会玩");
}
public Animal(String name){
super(name);//利用super(name)调用父类有参构造方法
System.out.println("动物类有参构造方法");
}
}
public:一种访问控制方式:共用模式
private:一种访问控制方式:私用模式
default:一种访问控制方式:默认(无)
protected:一种访问控制方式:保护模式
访问修饰符作用范围总结:
| 修饰词 | 本类 | 同一个包的类 | 继承类 | 其他类 |
|---|---|---|---|---|
| private | ✔ | × | × | × |
| default | ✔ | ✔ | × | × |
| protected | ✔ | ✔ | ✔ | × |
| public | ✔ | ✔ | ✔ | ✔ |



