Java简介
(1)java源文件以.java命名 (2)一个Java文件只有一个public class,且与源文件同名 (3)mian方法是程序的入口,只有一种写法 (4)java严格区分大小写 (5)每条语句用分号;隔开
大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。 主方法入口:所有的 Java 程序由 public static void main(String []args) 方法开始执行。
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 下表列出了 Java 各个类型的默认值:
最常见的分隔符是分号(;),用来分隔不同的Java语句。 一些空白分隔符(white space)。它可以是空格符、Tab跳格键,或者换行符。 还有点号(.),它可将软件包的名字与它的子包或类分隔,也可将引用变量与变量或者方法分隔。
访问控制修饰符 : (包访问权限)default, (公共)public , (受保护)protected, (私有)private 非访问控制修饰符 : final, abstract, static, synchronized
局部变量:方法或语句块内部定义的变量。 成员变量(非静态变量):方法外部、类的内部定义的变量。 类变量(静态变量):类变量也声明在类中,方法体之外,但必须声明为static类型。
算术运算符:+, - ,*, / ,%,++,–, Math 关系运算符:=, <, >, == ,!= 逻辑运算符:&, &&, |, ||, ! 位运算符:^,&,!,|, >> , << 赋值运算符:=, +=, *=, -=, /= 字符串连接符:+
import java.util.Scanner; public class Circular { public static void main(String[] args) { final double pi=3.14; Scanner scan=new Scanner(System.in); double radius=scan.nextDouble(); System.out.println("圆的半径是"+radius); double area; area=pi*radius*radius; System.out.println("圆的面积是"+area); } }对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象的行为和状态。 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
package one; public class Puppy { public Puppy(String name){ //这个构造器仅有一个参数:name System.out.println("小狗的名字是 : " + name ); } public static void main(String[] args){ // 下面的语句将创建一个Puppy对象 Puppy myPuppy = new Puppy( "tommy" ); } }面向对象
什么是对象? 实例
面向对象的作用 封装 + 拼装
面向对象的优势 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。
封装:将数据和对数据的操作封装在一起,用“类”实现 继承:新的类可以获得已有类(称为超类、基类或父类)的属性和行为,Java只支持单继承 多态:程序中同名的不同方法共存,不同对象可以响应同名消息完成特定功能,对同一类对象的不同形式的具体化。
忽略问题中与当前目标无关的方面,以便更充分地注意与当前目标有关的方面。 方法的声明,既标识这个方法,但是不对其实现的具体过程进行声明 使用abstract 进行修饰。 抽象类中定义抽象方法目的就是为了实现一个接口,多种方法的原理,即所有的子类对外都呈现一个相同名字的方法。
1、抽象类中可以有零个或多个抽象方法,也可以含有非抽象方法 2、有抽象方法的类必须是抽象类 3、非抽象子类必须实现抽象类中定义的所有抽象方法 4、abstract不能与final修饰同一个类 5、abstract不能与priavte、static、final并列修饰同一个方法 6、abstract类中不能有private的数据成员或方法
final修饰的变量的值不能被改变,是常量 final修饰的方法不能够被重写,是终结方法 final修饰类不能被继承,是终结类
什么是接口? 特殊抽象方法 + 常量
在 Java 中,接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。 接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。
抽象类中定义抽象方法目的就是为了实现一个接口,多种方法的原理,即所有的子类对外都呈现一个相同名字的方法 多个无关的类可以实现同一个接口 一个类可以实现多个无关接口 接口与实现之间也存在多态性 接口可以继承其它接口,并添加新的属性和抽象方法
public interface Sports { public void setHomeTeam(String name); public void setVisitingTeam(String name); } public interface Football extends Sports { public void homeTeamScored(int points); public void visitingTeamScored(int points); public void endOfQuarter(int quarter); } public interface Hockey extends Sports { public void homeGoalScored(); public void visitingGoalScored(); public void endOfPeriod(int period); public void overtimePeriod(int ot); }Hockey接口自己声明了四个方法,从Sports接口继承了两个方法,这样,实现Hockey接口的类需要实现六个方法。 相似的,实现Football接口的类需要实现五个方法,其中两个来自于Sports接口。
重载,仅仅是方法名相同。 重写,仅是方法的实现过程不同。
//重写的例子 public class Animal { String name; int age; char sex; void spe(String n,int a,char s) { name=n;age=a;sex=s; } static void enjoy() { System.out.println("我高兴了"); } } public class Cat extends Animal { static String eyecolor; static void spe(String n, int a, char s, String e) { eyecolor=e; System.out.println("猫名:"+n+"\t"+"年龄:"+a+"\t"+"性别:"+s+"\t"+"瞳色:"+e); } static void enjoy() { System.out.println("我高兴了,MIAOMIAOMIAO"); } } public class Dog extends Animal { static String furcolor; static void spe(String n, int a, char s, String f) { furcolor=f; System.out.println("狗名:"+n+"\t"+"年龄:"+a+"\t"+"性别:"+s+"\t"+"毛色:"+f); } static void enjoy() { System.out.println("我高兴了,WANGWANGWANG"); } } public class Enjoy { public static void main(String[] args) { Dog dog=new Dog(); Cat cat=new Cat(); Dog.spe("xiaobai",12,'母',"黑色"); Dog.enjoy(); Cat.spe("xiaohua",2,'公',"蓝色"); Cat.enjoy(); } }以上为Java基础.1,部分内容来自于菜鸟教程。