class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
b = (byte)(a + b);
System.out.println("hello"+'a'+1);
运算符
+,-,*,/,%,++,--
+
号在java中有三种作用,代表正号,做加法运算,字符串的连接符/
获取的是除法操作的商,%
获取的是除法操作的余数%
运算符 %
运算符结果的符号只和左边有关系,与右边无关%
2结果不是0就是1可以用来当作切换条件 ++ --
运算符的作用 ++
)自减(--
)运算++
:自加。对原有的数据进行+1--
:自减。对原有的数据进行-1byte b = 10;
b++;
b = b + 1;
b = b+1;
Error:不兼容的类型: 从int转换到byte可能会有损失
=,+=,-=,*=,/=,%=
short s=1;s = s+1;
short s=1;s+=1;
short s=1;s = s+1;
Error: 不兼容的类型: 从int转换到short可能会有损失
==,!=,>,>=,<,<=
&,|,^,!
&&,||
&
逻辑与:有false则false。|
逻辑或:有true则true。^
逻辑异或:相同为false,不同为true。!
逻辑非:非false则true,非true则false。&&
和&
的区别? &&
具有短路效果。左边是false,右边不执行。 &
是无论左边是false还是true,右边都会执行||
和|
同上&,|,^,~ ,>>,>>>,<<
&
:有0则0|
:有1则1^
:相同则0,不同则1 ^
的特点:一个数据对另一个数据位异或两次,该数本身不变。~
:按位取反<<
:左移 左边最高位丢弃,右边补齐0>>
:右移 最高位是0,左边补齐0;最高为是1,左边补齐1>>>
:无符号右移 无论最高位是0还是1,左边补齐0import java.util.Scanner;
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
流程控制结构
选择结构
if语句
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}
...
else {
语句体n+1;
}
switch语句
格式
switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
注意
循环结构
for(初始化表达式;条件表达式;循环后的操作表达式) {
循环体;
}
while(判断条件语句) {
循环体语句;
控制条件语句;
}
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
方法体语句;
return 返回值;
}
数据类型[] 数组名 = new 数据类型[数组的长度];
给定初始化值,由系统决定长度
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
数据类型[] 数组名 = {元素1,元素2,…};
数据类型[] 数组名 = new 数据类型[数组长度];
EX : int[] arr = new int[5];
arr.length
数组的长度arr.length - 1
;public static void print(int[] arr) {
for (int i = 0;i < arr.length ;i++ ) {
System.out.print(arr[i] + " ");
}
}
2. 数组的反转
public static void reverseArray(int[] arr) {
for (int i = 0;i < arr.length / 2 ; i++) {
//arr[0]和arr[arr.length-1-0]交换
//arr[1]和arr[arr.length-1-1]交换
//arr[2]和arr[arr.lentth-1-2]
//...
int temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
}
}
int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
for (int i = 0;i < arr.length ;i++ ) {
for (int j = 0;j < arr[i].length ;j++ ) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
CLASS
类名 对象名 = new 类名();
对象名.变量名
对象名.方法名()
成员变量和局部变量的区别
private
关键字特点 private
修饰getXxx()
和setXxx()
方法private
仅仅是封装的一种体现形式,不能说封装就是私有public class example_Phone {
public static void main(String[] args){
Phone p = new Phone();
p.setBrand("小米");
p.setPrice(2000);
p.call();
}
}
class Phone{
private int price;
private String brand;
public void setPrice(int price){
this.price = price;
}
public int getPrice(){
return price;
}
public void setBrand(String brand){
this.brand = brand;
}
public String getBrand(){
return brand;
}
public void call(){
System.out.println("打电话");
}
}
class Demo3_Person {
public static void main(String[] args) {
Person p1 = new Person("张三",23);
//p1 = new Person("张天一",23); //这种方式看运行结果貌似是改名了,其实是将原对象变成垃圾
System.out.println(p1.getName() + "..." + p1.getAge());
System.out.println("--------------------");
Person p2 = new Person(); //空参构造创建对象
p2.setName("李四");
p2.setAge(24);
p2.setName("李鬼");
System.out.println(p2.getName() + "..." + p2.getAge());
}
}
/*
构造方法
给属性进行初始化
setXxx方法
修改属性值
这两种方式,在开发中用setXxx更多一些,因为比较灵活
*/
class Person {
private String name; //姓名
private int age; //年龄
public Person() { //空参构造
}
public Person(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;
}
}
class Demo1_Student {
public static void main(String[] args) {
Student s = new Student();
s.show();
}
}
class Student {
private String name = "张三";
private int age = 23;
public Student() {
name = "李四";
age = 24;
}
public void show() {
System.out.println(name + "..." + age);
}
}![步骤演示](https://img-blog.csdn.net/20180327101255713?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3VjaGloYTcxMQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
public static void main(String[] args) {}
/**
这是一个数组工具类,里面封装了查找数组最大值,打印数组,数组反转的方法
@author fengjia
@version v1.0
*/
public class ArrayTool {
//如果一个类中所有的方法都是静态的,需要再多做一步,私有构造方法,目的是不让其他类创建本类对象
//直接用类名.调用即可
/**
私有构造方法
*/
private ArrayTool(){}
//1,获取最大值
/**
这是获取数组中最大值的方法
@param arr 接收一个int类型数组
@return 返回数组中最大值
*/
public static int getMax(int[] arr) {
int max = arr[0]; //记录第一个元素
for (int i = 1;i < arr.length ;i++ ) { //从第二个元素开始遍历
if (max < arr[i]) { //max与数组中其他的元素比较
max = arr[i]; //记录住较大的
}
}
return max; //将最大值返回
}
//2,数组的遍历
/**
这是遍历数组的方法
@param arr 接收一个int类型数组
*/
public static void print(int[] arr) {
for (int i = 0;i < arr.length ;i++ ) { //遍历数组
System.out.print(arr[i] + " ");
}
}
//3,数组的反转
/**
这是数组反转的方法
@param arr 接收一个int类型数组
*/
public static void revArray(int[] arr) {
for (int i = 0;i < arr.length / 2 ;i++ ) { //循环次数是元素个数的一半
/*
arr[0]与arr[arr.length-1-0] 交换
arr[1]与arr[arr.length-1-1] 交换
arr[2]与arr[arr.length-1-2] 交换
*/
int temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
}
}
}
class Student {
static {
System.out.println("Student 静态代码块");
}
{
System.out.println("Student 构造代码块");
}
public Student() {
System.out.println("Student 构造方法");
}
}
class Demo2_Student {
static {
System.out.println("Demo2_Student静态代码块");
}
public static void main(String[] args) {
System.out.println("我是main方法");
Student s1 = new Student();
Student s2 = new Student();
}
}
输出:
Demo2_Student静态代码块
我是main方法
Student 静态代码块
Student 构造代码块
Student 构造方法
Student 构造代码块
Student 构造方法
class Test4_Person {
public static void main(String[] args) {
Student s1 = new Student();
s1.setName("张三");
s1.setAge(23);
System.out.println(s1.getName() + "..." + s1.getAge());
s1.eat();
s1.study();
System.out.println("------------------");
Student s2 = new Student("李四",24);
System.out.println(s2.getName() + "..." + s2.getAge());
s2.eat();
s2.study();
}
}
/*
* 使用继承后的学生和老师案例
*/
class Person {
private String name; //姓名
private int age; //年龄
public Person() {} //空参构造
public Person(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;
}
public void eat() { //吃饭
System.out.println(name + "吃饭");
}
}
class Student extends Person {
public Student() {} //空参构造
public Student(String name,int age) {
super(name,age);
}
public void study() {
System.out.println(this.getName() + "学习");
}
}
class Teacher extends Person {
public Teacher() {} //空参构造
public Teacher(String name,int age) {
super(name,age);
}
public void teach() {
System.out.println(this.getName() + "讲课");
}
}